对不起,可能重复。我不知道怎么用谷歌搜索。
是否可以在const构造函数的初始化列表中重复字段?
例子:
const struct first _first = {
.value = 1,
.value = 2, /* same field again */
};
const struct second _second = {
.first = _first,
.first.value = 3, /* and again */
};
第二种情况当然更重要。
这是允许的,以后的初始化程序将覆盖之前的所有初始化程序。
这在C标准的6.7.9p19节中指定:
初始化应按初始化器列表顺序进行,为特定子对象提供的每个初始化器都将覆盖先前为同一子对象列出的所有初始化器;151)所有未明确初始化的子对象应与具有静态存储持续时间的对象隐式初始化。
151)被覆盖的子对象的任何初始化程序,因此不用于初始化该子对象的初始化程序可能根本不会被评估。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句