内置成员的默认初始化 Bjarne Stroustrup的C++程序设计语言,第四版,17.3.1,说明

内置成员的默认初始化 Bjarne Stroustrup的C++程序设计语言,第四版,17.3.1,说明,c++,c++11,C++,C++11,内置成员的“默认初始化”将 成员未初始化 引用默认编译器生成的构造函数 但是,在17.6.2中,我们有以下代码 struct S { string a; int b; }; S f(S arg) { S s0 {}; // default construction: {"",0} .. } 其中b默认初始化为0 那么,我在这里遗漏了什么?您正在做的是“不是默认初始化”。在聚合初始化中,未指定的成员进行值初始化(例如,整数为零)。@jonandertizdurántez我没

内置成员的“默认初始化”将 成员未初始化

引用默认编译器生成的构造函数

但是,在17.6.2中,我们有以下代码

struct S {
  string a;
  int b;
};

S f(S arg)
{
  S s0 {};     // default construction: {"",0}
..
}
其中b默认初始化为0


那么,我在这里遗漏了什么?

您正在做的是“不是默认初始化”。在聚合初始化中,未指定的成员进行值初始化(例如,整数为零)。

@jonandertizdurántez我没有进行任何编译。我想这对于任何编译器都应该是正确的应该是。这本书不是解释了吗?@juanchopanza我肯定它解释了,但我想怀疑是阅读过程的一部分。