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