コンパイラ エラー C2635
'identifier1*' を 'identifier2*' に変換できません。仮想基底クラスからの変換は暗黙的に行われます
変換には、virtual
基底クラスから派生クラスへのキャストが必要です。これは許可されていません。
次の例では 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
}