buillt-in成员的默认初始化

时间:2016-04-26 08:53:00

标签: c++ c++11

关于Bjarne Stroustrup的C ++编程语言,第4版,第17.6.3.1条说明

  

内置成员的''默认初始化''离开了   成员未初始化。

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

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

struct S {
  string a;
  int b;
};

S f(S arg)
{
  S s0 {};     // default construction: {"",0}
..
}

其中b默认初始化为0.

那么,我在这里错过了什么?

1 个答案:

答案 0 :(得分:5)

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