c++中为什么对继承过来的基类成员初始化的工作也要由派生类的构造函数承担?
3个回答
展开全部
瞧你这话说得!!
子类从基类继承来的变量在基类构造函数中可以初始化,在子类构造函数中也可以初始化!
在子类构造对象时,首先要调用基类的构造函数,再调用子类的构造函数;
子类对继承来的变量:
1.初始化:那么可想而知,最终构造子类对象时子类对这个变量的初始化起了作用(因为先基类构造函数对其初始化,后子类构造函数对其初始化,明白吧);
2.不初始化:那么可想而知,子类不干初始化这变量的事了,所以基类构造函数的初始化就发挥了作用。
总之,一句话,记住构造子类对象时,构造函数调用的顺序:始终是先调用基类构造函数,再调用子类构造函数,其他衍生出来的问题仔细想想就明白了!!
如果解决了你的疑惑,请采纳!否则请追问!加油哦!
子类从基类继承来的变量在基类构造函数中可以初始化,在子类构造函数中也可以初始化!
在子类构造对象时,首先要调用基类的构造函数,再调用子类的构造函数;
子类对继承来的变量:
1.初始化:那么可想而知,最终构造子类对象时子类对这个变量的初始化起了作用(因为先基类构造函数对其初始化,后子类构造函数对其初始化,明白吧);
2.不初始化:那么可想而知,子类不干初始化这变量的事了,所以基类构造函数的初始化就发挥了作用。
总之,一句话,记住构造子类对象时,构造函数调用的顺序:始终是先调用基类构造函数,再调用子类构造函数,其他衍生出来的问题仔细想想就明白了!!
如果解决了你的疑惑,请采纳!否则请追问!加油哦!
追问
首先谢谢你的回答。“继承过来的基类数据成员初始化的工作要由派生类的构造函数承担?即必须调用基类的构造函数?”这个是否是c++规定的呢?
追答
不是的,没有明确的规定,但是为了规范编程,基类的数据成员一般都在基类构造函数中初始化,但是不是必须在基类中初始化。
没有明确的规定,具体问题具体分析即可!!
展开全部
这是程序语意上的问题了, C++的派生类 包含了 一切基类,定义一个C++派生类对象时,先得构造
其基类部分,基类部分初始化时自然得调用构造函数了。
另外,基类也叫父类,派生类也叫子类,
这叫做父债子还,哈哈
其基类部分,基类部分初始化时自然得调用构造函数了。
另外,基类也叫父类,派生类也叫子类,
这叫做父债子还,哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
过来看答案的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询