虛繼承
class X{publci: int i ; };
class A :public virtual X { public : int j ;};
class B: public virtual X { public: double d;};
class C: public A,public B{ public: int k;};
void foo(const A *pa) { pa->i=1024;} //無法在編譯期決定出pa->X::i 的位置
main() {foo(new A); foo(new C);} // 可能轉變為 void foo (const A*pa) { pa->_vbcx->i=1024} vbcx是對象指向類X的指標,當然要在建構函式中確定。