【发布时间】:2013-07-17 23:48:31
【问题描述】:
C++11 标准第 8.5p7 段规定:
对 T 类型的对象进行值初始化意味着:
如果 T 是具有用户提供的构造函数的(可能是 cv 限定的)类类型(第 9 条) (12.1),然后调用 T 的默认构造函数(并且 如果 T 没有可访问的默认值,则初始化格式错误 构造函数);
如果 T 是(可能是 cv 限定的)非联合类类型 如果没有用户提供的构造函数,那么对象是 零初始化 并且,如果 T 的隐式声明的默认构造函数 是不平凡的,该构造函数被调用。
如果 T 是数组类型, 那么每个元素都是值初始化的;
否则,对象为 零初始化。
我无法理解上面的粗体字符。 T 的隐式默认构造函数的额外调用如何改变在这种情况下刚刚发生的零初始化?
【问题讨论】:
标签: c++ c++11 initialization