理解数组的成员

Understanding member of array

本文关键字:成员 数组      更新时间:2023-10-16

是否成员概念适用于数组(即数组的成员)。数组的元素和成员是不同的概念吗?

3.8/1 N3797:

如果对象属于a,则称其具有非平凡初始化class或aggregate类型,并且它或其中一个成员被初始化除了普通的默认构造函数以外的构造函数。

[…)

类型T对象的生命周期从以下时刻开始:

- storage withT字型的正确对齐和字号,

-如果对象具有非平凡初始化,则其初始化完成

8.1/1 N3797:

聚合是一个没有用户提供的数组或类(第9条)构造函数(12.1),没有私有或受保护的非静态数据成员(条款11),没有基类(条款10),也没有虚函数(10.3) .

3.8/2:

[注意:数组对象的生命周期从存储对象开始算起获得适当的尺寸和对齐,其生命周期在阵列占用的存储被重用或释放。12.6.2描述基子对象和成员子对象的生命周期。端注)

所以我认为数组的元素和数组的成员是不同的概念。

c++标准中定义的"成员"概念:

类的成员包括数据成员、成员函数、嵌套类型和枚举数。

§9.2 [class.mem]

不开始应用于数组,因为数组不是类类型。