理解数组成员

时间:2014-08-14 04:43:20

标签: c++ arrays language-lawyer

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

3.8 / 1 N3797:

  

如果一个对象属于a,则称该对象具有非平凡的初始化   类或聚合类型,或其中一个成员由初始化   除了普通的默认构造函数之外的构造函数。

     

[...]

     

T类对象的生命周期始于:

     

- 存储用   获得了类型T的正确对齐和大小,

     

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

8.1 / 1 N3797:

  

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

3.8 / 2:

  

[注意:数据对象的生命周期在存储时立即启动   获得适当的尺寸和对齐,并且当它的寿命结束时   阵列占用的存储器被重用或释放。 12.6.2   描述了基础和成员子对象的生命周期。 - 后注]

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

1 个答案:

答案 0 :(得分:2)

C ++标准中定义的“成员”的概念:

  

类的成员是数据成员,成员函数,嵌套类型和枚举器。

     

§9.2[class.mem]

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