本文共 532 字,大约阅读时间需要 1 分钟。
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也可以用};
转载地址:http://zgjsi.baihongyu.com/