当类的成员用const修饰时,要通过成员初始化列表进行赋值,如:
class Dream
{
private:
const int day;
public:
Dream(int _d) { day = _d; } //error
Dream(int _d) : day(_d) {} //correct
};
我们可以分析,const在C++中表示值不能被更新,因此普通的赋值操作无效。
此外,类成员中有引用类型,如:
class Dream
{
private:
int& day;
public:
Dream(int _d) { day = _d; } //error
Dream(int _d) : day(_d) {} //correct
};
因为C++有一个特性,引用声明时必须进行初始化。