在C+中,以下短语意味着什么:零、默认和值初始化?在C+中,以下短语意味着什么:零初始化,默认初始化,以及值初始化C+开发人员应该知道些什么呢?
2 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
到 零初始化T型物体是指: -如果T是标量类型(3.9),则将对象设置为转换为T的0(0)值; -如果T是非并类型,则每个非静态数据成员和每个基类子对象都为零初始化; -如果T是一个联合类型,则对象的第一个命名数据成员为零初始化; -如果T是数组类型,则每个元素都为零初始化; -如果T是引用类型,则不执行初始化。
到 默认初始化T型物体是指: -如果T是非POD类型(第9条),则调用T的默认构造函数(如果T没有可访问的默认构造函数,则初始化不正确); -如果T是数组类型,则每个元素都是默认初始化的; -否则,对象将为零初始化。
到 值初始化T型物体是指: -如果T是具有用户声明的构造函数(12.1)的类型(第9条),则调用T的默认构造函数(如果T没有可访问的默认构造函数,则初始化是错误的); -如果T是一个没有用户声明的构造函数的非联合类型,那么T的每个非静态数据成员和基类组件都是值初始化的; -如果T是数组类型,则每个元素都是值初始化的; -否则,对象将为零初始化。
调用引用类型实体的默认初始化或值初始化的程序格式不正确.如果T是cv限定类型,则使用cv不限定的T版本来定义零初始化、默认初始化和值初始化.
- 2 回答
- 0 关注
- 484 浏览
添加回答
举报
0/150
提交
取消