聚合类
当一个类满足如下条件,是聚合的:
- 所有成员都是 public 的。
- 没有定义任何构造函数。
- 没有类内初始值。
- 没有基类,也没有 virtual 函数。
一个聚合类:
struct Data
{
int ival;
string s;
}
提供一个花括号括起来的成员初始值列表,并用它初始化聚合类的数据成员:
//val1.ival = 0; val1.s = string("Anna")
Data val1={0,"Anna"};
初始值的顺序必须与声明的顺序一致:
//错误:不能使用 "Anna" 初始化 ival ,也不能使用 1024 初始化 s
Data val2 = {"Anna",1024};
初始值列表中的元素个数少于类的成员数量,靠后的成员被值初始化。
初始值列表的元素个数不能超过类的成员数量。
显式初始化类的对象的成员三个明显的缺点:
- 要求类的所有成员都是 public 的。
- 将正确初始化每个对象的每个成员的重任交给了类的用户。
- 添加或删除一个成员之后,所有的初始化语句都需要更新。

浙公网安备 33010602011771号