对昨天的花括号初始化做一个补充,术语应该叫做聚合初始化,补充一个Stackoverflow上的高票答案
这里发生了什么叫做聚合初始化。以下是ISO规范第8.5.1节中的一个聚合的(缩写)定义:
聚合是一个没有用户声明构造函数的数组或类,没有私有或受保护的非静态数据成员,没有基类,也没有虚函数。
现在,使用{0}像这样初始化一个聚合,基本上是0整个事情的一个技巧。这是因为在使用聚合初始化时,您不必指定所有成员,并且规范要求所有未指定的成员都默认初始化,这意味着设置0为简单类型。
这里是规范的相关引用:
如果列表中的初始化器数量少于聚合中的成员数量,那么未明确初始化的每个成员应该被默认初始化
hyperlink:reference
本文详细解释了C++中聚合初始化的概念及其实现原理。聚合初始化适用于特定类型的数组或类,允许通过花括号初始化列表来设置初始值。文章还介绍了ISO标准对此的定义,并解释了当初始化列表中的元素数量少于成员数量时,剩余成员将如何被默认初始化。
522

被折叠的 条评论
为什么被折叠?



