聚合类

前端之家收集整理的这篇文章主要介绍了聚合类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_0@聚合类特点:可以直接访问成员,具有特定的初始化语法。

@H_403_0@

@H_403_0@聚合类需要满足以下条件:

@H_403_0@1、所以成员是public

@H_403_0@2、没有定义任何构造函数

@H_403_0@3、没有类内初始值。

@H_403_0@4、没有基类,没有虚函数

@H_403_0@

@H_403_0@例如:

@H_403_0@struct Data{

@H_403_0@int ical

@H_403_0@string s;

@H_403_0@};

@H_403_0@聚合类可以用初始化表初始化成员。

@H_403_0@如 Data d = {111,"haha"}

@H_403_0@初始化表中元素的顺序要与成员变量的定义顺序一致。当初始值表中的元素个数少于类成员变量个数时,靠后的成员被初始化为默认值。初始化列表的元素个数绝不能多于类成员数。

@H_403_0@

@H_403_0@很显然,聚合类的条件也给他带来了不少缺点。

@H_403_0@1、要求类的所有成员都是public的,也就是对外可见的,破坏了封装性。

@H_403_0@2、由于没有构造函数,所以初始化每个成员的重任就交给了类的使用者,这样就导致容易出错。

@H_403_0@3、添加删除某个成员后,所有的初始化语句都要修改

猜你在找的设计模式相关文章