什么情况下必须使用C++的初始化列表
来源:互联网 发布:传奇mac 编辑:程序博客网 时间:2024/05/21 17:08
先给理论。
1. 初始化 != 赋值.
a.初始化代表为变量分配内存. 变量在其定义处被编译器初始化(编译时). 在函数中, 函数参数初始化发生在函数调用时(运行时).
b.赋值代表"擦除对象当前值, 赋予新值". 它不承担为对象分配内存的义务.
2. C++中, 类成员的初始化于初始化列表中完成, 先于构造函数体执行. 即成员真正的初始化发生在初始化列表中, 而不是构造函数体中.
再给说明。
1. 如果类中有一个成员是一个引用, 由于引用必须给予初始值, 因此, 引用必须使用初始化列表.
2. 同理, const属性必须给予初始值, 必须使用初始化列表.
3. 继承类中调用基类初始化构造函数, 实际上就是先构造基类对象, 必须使用初始化列表.
别的不再说明, 什么时候必须使用初始化列表是很明显的;
另外, 简单的说, 任何时候都鼓励使用初始化列表, 一些别的事情(比如在构造函数中分配资源之类的, 请参考RAII, Resource Acquizition Is Initialization)可以放在构造函数体内完成.
阅读全文
0 0
- 什么情况下必须使用C++的初始化列表
- 必须使用初始化列表的情况
- 必须使用【初始化列表】初始化数据成员的情况
- C++必须使用初始化列表的一种情况
- 必须使用初始化列表的几种情况
- 【c++】必须在类的初始化列表中初始化的的几种情况
- 【c++】必须在类初始化列表中初始化的几种情况
- C++必须使用【初始化列表】初始化数据成员的三种情况
- C++必须使用【初始化列表】初始化数据成员的三种情况
- c++中必须用初始化列表初始化的情况
- 构造函数初始化时必须采用初始化列表的情况
- 在构造函数中必须用初始化列表的情况
- 必须用到初始化成员列表的四种情况
- 四种必须用到初始化成员列表的情况
- 初始化列表使用情况
- 必须使用初始化表初始化参数的情况。。
- 必须采用初始化列表一共有三种情况
- 必须在初始化列表中的情况
- Hive结构
- struct和typedef struct
- 多项目同时进行如何做好进度管理?
- 2017-8-16
- 网易笔试:操作序列
- 什么情况下必须使用C++的初始化列表
- 架构师养成之路(1)--- 58专家解读架构师之路:这些才是架构师成功的标配!
- Convolutional Pose Machines
- CodeForces839A Arya and Bran
- 爬取网站使用代理IP
- HDU6129 Just do it
- FlatList测试
- PinPoint使用教程
- 数据结构实验之查找五:平方之哈希表