这可能是一个非常基本的问题,但我从来没有理解它。当我声明成员变量时,我通常在一个类
中进行class Bloke
{
public:
Bloke(): age(24) {}
int age;
}
所以,我通常在分号后用“membera(),memberb()”等声明成员变量。随着时间的推移,我有点懒,并开始在{}中直接包含成员变量的声明,即
Bloke(){age=24;}
int age;
甚至在构造函数中的类之外。有人可以解释一下这是不是错了吗?感谢。
答案 0 :(得分:0)
不是没有错,直到c ++ 11才是唯一的方法。然而,大多数人会考虑第一种方式更简单,更习惯于c ++ 11,它被称为构造函数委托。在c ++ 11中,您还可以对某些类型进行内联初始化:
class Bloke
{
public:
Bloke():{}
int age = 24;
};
除非您在所有初始化对象的其他地方更改它,否则age的值将为24。 IMO构造函数委派应该适用于任何适用的情况,并保存构造函数的主体以进行额外的工作。