3个回答
展开全部
如果基类只有有参数的构造函数,派生类也写,这么写:
class A
{
A(int a)
{}
};
class B : A
{
B():A(10)//例如这样B没参
{}
};
class C : A
{
C(int c):A(c)//例如这样C有参
{}
};
无论多少个子类,依此类推,只管父辈的就好了,无视爷爷辈的
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自己的成员了。这就好像是爷爷把遗产继承给爸爸,巴巴再继承给儿子一样,这是已经继承下来的了,不是儿子再去向爷爷要啊。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询