说说构造函数的初始化列表.

来源:互联网 发布:多益网络帐号 编辑:程序博客网 时间:2024/05/29 16:09

class constref
{
public:
constref(int ii);
private:
int i;
const int ci;
int &ri;
};
constref::constref(int ii)
{
i=ii;
ci=ii;
ri=i;
}
这个构造函数的使用明显是错误的.
ci是const 类型,只能被初始化不能被赋值,同样ri=i;这句也错的明显.
结果:初始化const或者引用类型数据成员的唯一机会就是在构造函数的初始化列表中.
正确的写法如下:
constref::constref(int ii):i(ii),ci(ii),ri(i){}
测试程序如下:

原创粉丝点击