当基类A同时被派生类B继承时,需要声明虚基类。与虚函数不同的是不能定义类时就声明为virtual,而是继承的时候再声明。
class A
{
……
}
class B: virtual public A
{
}
class C:virtual public A
{
}
最近遇到一个坑,注意:在声明完常虚函数 例如 virtual print() const 后,即使派生类里写成 print() 使用也不会报错,但实际上使用的仍然是父类里的函数,所以派生类里记得要写 print() const.