Naw*_*waz 14 c++ initialization
我正在读这个答案,所以我遇到了第二个字:value-initialize.最初我认为这是相同的,default-initialize但上下文暗示我错了.
所以我的问题是:
default-initialize和value-initialize有什么区别?
我想了解一些例子的不同之处.
Kar*_*oor 10
根据标准(8.5/4,5):
到缺省初始化类型T的对象是指:
-如果T是一个非POD类类型T的默认构造函数被调用(和是形成不良的初始化如果T没有可访问的缺省的构造);
- 如果T是数组类型,则每个元素都是默认初始化的;
- 否则,对象被零初始化.
到值初始化类型的物体T是指:
-如果T是一个类型(第9节)与用户声明的构造(12.1),然后对T中的默认构造函数被调用(以及初始化是形成不良的如果T没有可访问的默认构造函数);
- 如果T是没有用户声明的构造函数的非联合类类型,则T的每个非静态数据成员和基类组件都是值初始化的; 96)
- 如果T是数组类型,则每个元素都是值初始化的;
- 否则,对象被零初始化
"default-initialise"为其提供标准指定的默认值,该值可能是垃圾.
"value-initialise"将其初始化为特定值 - 例如,在构造函数中设置一个值,或者由编译器优化.
| 归档时间: |
|
| 查看次数: |
5911 次 |
| 最近记录: |