虚继承
虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。请看下图:
A
/
B
A
/
C
B C
/
D
类D继承自类B、C,而类B、C都继承自类A,因此出现如下图所示的局面:
A A
/
B C
/
D
在类D中会出现A。为了节省内存空间,可以将B、C对A的继承定义为虚拟继承,而A就成了虚拟基类。最后形成如下图所示的情况。
A
/
B C
/
D
代码如下:
class A;
class B:public virtual A;
class C:public virtual A;
class D:public B,public C;