class A
{
virtual int f();
};
class B
{
virtual void f();
};
如果有一个类C同时集成了A和B,那他继承的是那个f()啊?我感觉这样不对啊,c++只能重载是参数不相同的函数吧?
--------------------------------------------------------------------------------------------------------------------------------------------
两个都继承了下来,用::来区分,否则编译不能通过,目标函数不明确
有这样的定义
class C:public A, public B{};//实际上A、B中的所有成员都继承过来
假如A、B中f都声明为public,
然后main函数中有C cTest;cTest.f();
//编译不能通过,目标函数不明确//应该这样调用cTest.A::f(); //或者cTest.B::f();//也正确另外,
这样继承也可以class C:public A, public B{public: using A::f;//声明为A中f可见;当然类B也可以用};