gpt4 book ai didi

C++11类成员初始化

转载 作者:行者123 更新时间:2023-11-30 02:23:36 26 4
gpt4 key购买 nike

刚从 C++03 切换到 C++11,我想知道,下面是否定义为始终零初始化所有元素的数组 data

template<size_t COUNT>
class Test {
public:
uint32 data[COUNT] = {};
};

最佳答案

是的,这是有保证的; list initializationaggregate initialization对于数组类型:

Otherwise, if T is an aggregate type, aggregate initialization is performed.

然后进行聚合初始化:

If the number of initializer clauses is less than the number of members or initializer list is completely empty, the remaining members are initialized by empty lists, in accordance with the usual list-initialization rules (which performs value-initialization for non-class types and non-aggregate classes with default constructors, and aggregate initialization for aggregates).

所以 data 的所有元素都是 value initialized ,对于 uint32,它们将是 zero-initialized最后。

otherwise, the object is zero-initialized.

关于C++11类成员初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com