一个类中存在重载的构造函数,如果在一个构造函数中调用另外一个构造函数,是非常错误的做法。因为一个构造函数构造一个对象,在这个构造函数中调用另外一个构造函数,会构造一个临时的对象。所以两个构造函数的代码执行不属于同一个对象。这就会造成跟我们预期有差别的结果。
如果是为了重用代码,可以抽出共用的代码到一个private小函数。或者是用placement new。
2022/8/9 初始化列表可以调用构造函数
一个类中存在重载的构造函数,如果在一个构造函数中调用另外一个构造函数,是非常错误的做法。因为一个构造函数构造一个对象,在这个构造函数中调用另外一个构造函数,会构造一个临时的对象。所以两个构造函数的代码执行不属于同一个对象。这就会造成跟我们预期有差别的结果。
如果是为了重用代码,可以抽出共用的代码到一个private小函数。或者是用placement new。
2022/8/9 初始化列表可以调用构造函数