c++中构造函数初始化式有两种方式:
- 使用构造函数初始化列表进行初始化
- 省略初始化列表并在构造函数体内对数据成员进行赋值达到初始化的目的
例如:
class ConstRef{
public :
ConstRef(int ii);
private :
int i;
const int ci;
int & ri;
}
ConstRef::ConstRef(int ii)
{
i=ii;
ci=ii;//error
ri=ii;//error
}
记住,可以初始化const对象或引用类型的对象,但是不能对他们进行赋值。
正确的构造函数的编写方式是:
ConstRef::ConstRef(int ii):i(ii),ci(ii),ri(ii) { }
所以在此总结:在编写构造函数的时候尽量使用构造函数初始化列表来进行初始化