c++ multiple inheritance and virtual

  • 712
  • 0

摘要:c++ multiple inheritance and virtual

ex:
class A{ A();A(A*e_pA) };
class B:virtual public A{ B();B(B*e_pB):A(e_pB); };
class C:public A{ C();C(C*e_pC):A(e_pC) };
class D:public C,public B{  D();D(D*e_pD):B(D),C(D); }

the B constructor B(B*e_pB)
it will process B(B*e_pB)
not B(B*e_pB):C(e_pB)
because it's virtual...

I think this is so weird
but it seems can't be resolved.

http://nknucc.nknu.edu.tw/~jwu/c/cpgch16.htm