c++多重继承问题,很简单的。

classA{virtualintf();};classB{virtualvoidf();};如果有一个类C同时集成了A和B,那他继承的是那个f()啊?我感觉这样不对啊,... class A
{
virtual int f();
};
class B
{
virtual void f();
};
如果有一个类C同时集成了A和B,那他继承的是那个f()啊?
我感觉这样不对啊,c++只能重载是参数不相同的函数吧?
展开
 我来答
songwanqiang
2008-05-21 · TA获得超过2399个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:946万
展开全部
有这样的定义
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也可以用
};
ls9893686
2008-05-21
知道答主
回答量:27
采纳率:0%
帮助的人:31.3万
展开全部
两个都有继承,不过在使用时候就会有名字冲突,编译程序不能确定到底使用哪个成员函数。一般解决方法是:
1。使用作用域运算符“::“
2。重定义有名字冲突的成员
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PS—独孤剑
2008-05-21 · 超过17用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:0
展开全部
两个都继承了下来,用::来分辩
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式