次の方法で共有


コンパイラ エラー 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
}