編譯器錯誤 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
}