Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der dynamic_cast-Operator wird zur Konvertierung in eine nichtverfügbare oder mehrdeutige Basisklasse verwendet; Beim Laufzeittest werden Fehler auftreten ("type1" in "type2")
Bemerkungen
Sie haben verwendet dynamic_cast , um von einem Typ in einen anderen zu konvertieren. Der Compiler hat festgestellt, dass die Umwandlung immer fehlschlägt (null zurückgeben), da eine Basisklasse (privatez. B. beispielsweise) oder mehrdeutig (z. B. mehr als einmal in der Klassenhierarchie angezeigt wird).
Example
Im Folgenden sehen Sie ein Beispiel für diese Warnung. Klasse B wird von Klasse A abgeleitet. Das Programm verwendetdynamic_cast, um von Klasse B (der abgeleiteten Klasse) in Klasse A zu umwandeln, was immer fehlschlägt, da Klasse B und somit nicht darauf zugegriffen werden private kann. Wenn Sie den Zugriff von A ändern, public um die Warnung zu beheben.
// C4540.cpp
// compile with: /W1
struct A {
virtual void g() {}
};
struct B : private A {
virtual void g() {}
};
int main() {
B b;
A * ap = dynamic_cast<A*>(&b); // C4540
}