Freigeben über


Compilerfehler C2683

'cast' : 'type' ist kein polymorpher Typ.

Bemerkungen

Sie können dynamic_cast nicht verwenden, um aus einer nicht polymorphen Klasse (eine Klasse ohne virtuelle Funktionen) zu konvertieren.

Sie können static_cast verwenden, um Konvertierungen von nicht polymorphen Typen durchzuführen. static_cast Führt jedoch keine Laufzeitüberprüfung durch.

Beispiel

Im folgenden Beispiel wird C2683 generiert:

// C2683.cpp
// compile with: /c
class B { };
class D : public B { };

void f(B* pb) {
   D* pd1 = dynamic_cast<D*>(pb);  // C2683
   D* pd1 = static_cast<D*>(pb);   // OK
}