虚基类
1 表示方式:
class A
{
public:
A()
{
cout<<"the constructor of A"<<endl;
}
~A()
{
cout<<"the destructor of A"<<endl;
}
private:
// add the code in here
}
class B: virtual pubilc A
{
public:
B()
{
cout<<"the constructor of B"<<endl;
}
~B()
{
cout<<"the destructor of B"<<endl;
}
private:
// add the code in here
}
类B虚拟继承了类A,那么类A就称为类B的虚基类。
2 虚基类解决什么问题,或者说引入的目的
虚基类的引入,是解决多重继承时,派生类出现的二义性问题。
如:类B和类C,直接继承类A,类D多重继承类B和类C,当类D访问类A中的变量时就会出现二义性错误,如果是类B和类C虚拟继承类A,那么当类D多重继承类B和类C时,类D只会有类A的一个对象,这样就解决了二义性的问题。