为了账号安全,请及时绑定邮箱和手机立即绑定

关于子类初始化的问题

既然MigrantWorker类继承了Famer类和Worker类,那么在MigrantWorker类中应该就已经包含了数据成员name和code,那为何在写MigrantWorker的构造函数时不直接给两个数据成员赋值,而是要用初始化列表调用父类的构造函数呢?

正在回答

1 回答

这个例子是为了给你演示多继承,实例化子类对象来给父类成员赋值,因为famer类只有m_strName而没有m_strCode,woker类和它相反,而MigrantWorker类则具有两个成员,如果只是给MigrantWorker类自己的成员赋值的话,是可以采用你说的普通方法。给父类成员赋值,也可以使用  MigrantWorker mk;  mk.Famer::m_strName="XXXX"的方式,但是显然初始化列表更加的省事。

2 回复 有任何疑惑可以回复我~
#1

慕仙0676676 提问者

非常感谢!
2016-10-11 回复 有任何疑惑可以回复我~
#2

qq_一r过_03334883 回复 慕仙0676676 提问者

客气了
2016-10-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之继承篇
  • 参与学习       75203    人
  • 解答问题       249    个

继承,C++面向对象三大特征之一,通过编码实践方式讲解到操作层面

进入课程

关于子类初始化的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信