Erro do compilador C2635
não pode converter um 'identifier1*' em um 'identifier2*'; conversão de uma classe base virtual está implícita
A conversão requer uma conversão de uma virtual
classe base em uma classe derivada, o que não é permitido.
O exemplo a seguir gera 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
}