覆盖的是哪个类的?
class A
{
public:
virtual void fun(){}
};
class B
{
public:
virtualvoid fun(){}
};
class C :public A,public B
{
void fun() //覆盖那个基类的函数
{
}
};
int main()
{
return 0;
}
[解决办法]
虚函数是两个父类都被覆盖了,所以哪怕把C赋给指向A或B的引用:
声明为virtual的函数只能有一个版本,就是实际生成的对象的版本。如果生成实际的对象是C,因为C继承了A和B,而A和B都有func,有了两个版本的func所以会产生歧义,也就是C中的必须有一个func来覆盖A和B……