c++中多重继承时若基类构造函数有参,派生类构造函数怎么写?例A->B->C->D那如果每个类构造函数都有参 5

那要怎么写派生类中的构造函数... 那要怎么写派生类中的构造函数 展开
 我来答
longinus_dean
2012-03-15 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1508万
展开全部
如果基类只有有参数的构造函数,派生类也写,这么写:

class A
{
A(int a)
{}
};

class B : A
{
B():A(10)//例如这样B没参
{}
};

class C : A
{
C(int c):A(c)//例如这样C有参
{}
};

无论多少个子类,依此类推,只管父辈的就好了,无视爷爷辈的
更多追问追答
追问
那如果A中有公共成员,C是从B中派生过来的,你说不用管爷爷辈的,那我要是想用A中成员a,但如果我只在主函数中定义c类的一个对象,那要怎么把值传给A中a
追答
你说的乱了,所谓的继承啊,就是为了分层啊,就是为了接口分明

如果你的C继承B,B继承A,那么你就不应该用C直接传递给A了,应该是C传递给B,B再传递给A,隔一层就不应该有什么交集了。

再者说了,A中的公共成员如果一直是public继承,那么A的成员也会继承给B,最后也会继承给C了,也就相当于是C自己的成员了。这就好像是爷爷把遗产继承给爸爸,巴巴再继承给儿子一样,这是已经继承下来的了,不是儿子再去向爷爷要啊。
wanfustudio
2012-03-16 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3691万
展开全部
在每个类的构造函数中的初始化列表中调用即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hxyail
2012-03-15 · TA获得超过127个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:68万
展开全部
函数重载吧,根据参数的个数、类型决定调用哪个类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式