什么是虚继承和虚基类
我的理解:
虚继承 是指 子类 在继承 父类 时使用了virtual关键字;
虚基类 是指 子类 所继承的 父类 在继承他的父类时使用了 virtual 关键字。
eg:
class Base{
public:
int BaseID;
Base(){
BaseID = 10;
std::cout << "Base init, BaseID = " << BaseID <<std::endl;
}
};
class Father1 : public virtual Base {
};
class Father2 : public virtual Base {
};
class Son : public Father1, public Father2{
};
如上所示:我们可以说Father1和Father2两个类虚继承了Base类。对于 Son 类来说 Father1 和 Father2 两个类就是虚基类,因为这两个类在继承 Base类时使用了 virtual 关键字,同时他们又是 Son 类的基类(父类),所以把 Father1 和 Father2 叫做虚基类。