C++的const和引用只能在初始化列表里初始化而不能在构造函数体内赋值初始化
来源:互联网 发布:淘宝如何打开淘口令 编辑:程序博客网 时间:2024/04/29 20:10
class ConstRef{public:ConstRef( int ii );private:int i;const int ci;int &ri;};ConstRef::ConstRef( int ii ){i = ii;ci = ii;ri = i;}ConstRef::ConstRef( int ii ): i(ii), ci(ii), ri(i){}
解释:第一种构造函数有错,而第二种正确。
硬性要求:c++规定const成员和引用成员必须在初始化列表中初始化,而不能在构造函数体内初始化。
为什么需要这么规定呢?因为在进入构造函数体内时,实际上变量都已经初始化完毕了,即引用变得和const变量都已经用不确定的值初始化好了,构造函数内能做的只有赋值,而const类型和引用类型是不可以赋值的。所以,需要在初始化列表中初始化。
- C++的const和引用只能在初始化列表里初始化而不能在构造函数体内赋值初始化
- 构造函数初始化列表和构造函数体内赋值
- 尽量使用初始化而不要在构造函数里赋值
- 尽量使用初始化而不要在构造函数里赋值
- 尽量使用初始化而不要在构造函数里赋值
- 必须在构造函数的成员初始化列表里初始化
- C++ 在初始化列表中初始化和在构造函数内初始化的区别
- Effective C++学习笔记:尽量使用初始化而不要在构造函数里赋值
- 尽量使用初始化而不要在构造函数里赋值(转自effective c++ )
- Effective C++学习笔记之“尽量使用初始化而不要在构造函数里赋值”
- 为什么尽量使用初始化而不要在构造函数里赋值
- effective C++笔记之条款12: 尽量使用初始化而不要在构造函数里赋值
- 条款12: 尽量使用初始化而不要在构造函数里赋值
- 条款12:尽量使用初始化而不要在构造函数里赋值
- 条款 12: 尽量使用初始化而不要在构造函数里赋值
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- hdu_3371 Connect the Cities
- java连sql server 问题 java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.getJ
- java做简单日历
- 再议C语言第一节(C类型与运算)讲座整理
- POJ1704nim博弈变形
- C++的const和引用只能在初始化列表里初始化而不能在构造函数体内赋值初始化
- 如何理性选择适合自己的数据库?
- JS中数组Array的用法
- C#调用API
- include
- 一些有用的网站
- 托管代码和非托管代码的区别
- 再谈线程
- 真正的跨平台运行