1、多继承(环状继承),A->D,B->D,C->(A,B),例如:
class D{......};
class B: public D{......};
class A: public D{......};
class C: public B, public A{.....};
这个继承会使D创建两个对象(C++编译器现在已优化?),要解决上面的问题,就要采用虚拟继承格式:
class D{......};
class B: virtual public D{......};
class A: virtual public D{......};
class C: public B, public A{.....};
虚继承,在创建对象的时候会创建一个虚表。