Partager via


Erreur du compilateur C2683

'cast' : 'type' n’est pas un type polymorphe

Vous ne pouvez pas utiliser dynamic_cast pour convertir à partir d’une classe non polymorphe (une classe sans fonctions virtuelles).

Vous pouvez utiliser static_cast pour effectuer des conversions de types non polymorphes. Toutefois, static_cast n’effectue pas de vérification au moment de l’exécution.

L’exemple suivant génère l’erreur 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
}