1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class ConstRef { public : ConstRef( int ii ); private : int i; const int ci; int & ri; }; ConstRef::ConstRef( int ii ) { i = ii; /* ok */ ci = ii; /* error: 不可以对 const类型 赋值 */ ri = i; /* 不可以对引用赋值 */ } /* const 和 引用只可以初始化 */ |
这可以换一种方式,就是使用构造函数初始化列表
ConstRef::ConstRef (int ii):i (ii), ci(ii),ri (ii){}
必须 要对 所有的
- const成员
- 引用成员
- 没有默认构造函数的类类型 成员
使用 初始化列表的方式 来初始化
同时 初始化类成员 的次序 是跟我们所 写的 初始化列表顺序无关的,它只跟成员定义的顺序相关。