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
}