理解数组的成员
Understanding member of array
是否成员概念适用于数组(即数组的成员)。数组的元素和成员是不同的概念吗?
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]
不开始应用于数组,因为数组不是类类型。
相关文章:
- 是否可以将结构数组别名为结构成员数组?
- C++:初始化 constexpr 构造函数中的成员数组
- 使用带有参数包的数组的成员数组初始化类
- C++ 在析构函数调用之前删除的动态成员数组
- 初始化在类类型 #define 中定义的非静态成员数组,不带默认 ctor
- 指向具有不同大小的成员数组的指针
- 用另一个 constexpr 数组对成员数组进行大括号初始化
- 对象成员数组C++默认初始化
- 如何在构造函数中的类成员数组中分配数组值,而无需使用STD库
- 将类成员数组组合到单个数组时性能下降
- 如何将数据从公共方法添加到同一类中的私有成员数组中?
- 如何在C 中的派生类中分配数据成员数组
- C 集合构建器中类成员数组的2D数组大小
- 初始化不可复制、不可移动、显式构造类型的成员数组
- C 指针可以指向字符串文字的静态成员数组
- 成员数组位于何处
- 将对象成员数组与字符串进行比较
- 如何在 c++ 中从对象数组中获取数据成员数组
- 声明模板会员参考另一个类的模板成员数组
- C 初始化成员数组