读书人

覆盖的是哪个种的

发布时间: 2012-10-18 13:46:55 作者: rapoo

覆盖的是哪个类的?
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……

读书人网 >C++

热点推荐