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

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

比如:                                                                                                                                                  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++远征之封装篇(上)
  • 参与学习       103410    人
  • 解答问题       701    个

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

进入课程

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

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