Compartir a través de


Error del compilador C2683

'conversión': 'tipo' no es un tipo polimórfico

No se puede usar dynamic_cast para convertir una clase no polimórfica (clase sin funciones virtuales).

Puede usar static_cast para realizar conversiones de tipos no polimórficos. Sin embargo, static_cast no realiza una comprobación en tiempo de ejecución.

El ejemplo siguiente genera el error C2683:

// 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
}