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

有参构造函数能否调用无参构造函数哪?

比如:                                                                                                                                                  Teacher(){Teacher("marry",115);}//无参调用有参                                                                              Teacher(str _name,int _age){m_strName=_name;m_iAge=_age;}

正在回答

1 回答

不能在构造函数体中调用其他的构造函数,这等于是临时构造了一个Teacher后又丢弃了它。

不过在新标准(C++11)中,可以在构造函数的构造初始化列表中调用本类的其他构造函数。如:

class Teacher {
public:
    Teacher(str _name, int _age) {m_strName = _name; m_iAge = _age;}
    Teacher() : Teacher("marry", 115) {}  // 像这样写到构造初始化列表中
};

另外,对其普通的构造函数,最好也把成员变量的初始化值写在构造初始化列表中。


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

lcmao 提问者

非常感谢!
2015-07-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

有参构造函数能否调用无参构造函数哪?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号