Partager via


Erreur du compilateur C2635

ne peut pas convertir un 'identificateur1*' en 'identificateur2*' ; la conversion à partir d’une classe de base virtuelle est implicite

La conversion nécessite un cast d’une virtual classe de base vers une classe dérivée, qui n’est pas autorisée.

L’exemple suivant génère l’erreur C2635 :

// C2635.cpp
class B {};
class D : virtual public B {};
class E : public B {};

int main() {
   B b;
   D d;
   E e;

   D * pD = &d;
   E * pE = &e;
   pD = (D*)&b;   // C2635
   pE = (E*)&b;   // OK
}