gpt4 book ai didi

c++ - std::array 大括号如何初始化?

转载 作者:行者123 更新时间:2023-12-02 05:23:59 27 4
gpt4 key购买 nike

既然数组没有构造函数或析构函数,也没有公共(public)非静态成员变量,那么数组如何允许大括号初始化?不允许尝试初始化以下类型:

template<typename T, std::size_t num>
class Array
{
T data[num];
};

如何以大括号可初始化的方式编写此类型,而无需任何构造函数或析构函数,以保持类型的可简单构造和可破坏性,并且不暴露私有(private)数组成员?

最佳答案

std::array 的构造函数是隐式声明的

假设 std::array 定义为

template<
class T,
std::size_t N
> struct array;

它只包含一个成员,T[N],具有公共(public)访问权限。

因此,可以通过为聚合初始化编写适当的语法来初始化std::array,即使用大括号。

关于c++ - std::array 大括号如何初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58956730/

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