C++ 中聚合和组合的实现

聚合:通常广泛用于描述一个类的对象拥有其它类的对象的情况。

组合:是聚合的一种形式,其中拥有着类控制被拥有者类对象的声明周期。

在c++中,聚合(包含组合)通常是由一个类C包含另一个类D类型的成员变量(这种方式又被称为嵌入包含的方式),或者是由于类C具有一个指向D类型的指针的成员变量产生的(指针方式)。

通过指针聚合的好处:

 1,通过嵌入包含的方式,有时会造成不必要的数据重复和浪费。例如,一个Person类的属性中可能包含一个Country类的对象,而许多人的Country类的对象是一样的。使用指针方式的化,内存中只要存在一份country数据就可以了。

2,当某个国家的Country类的对象发生变化时,很多的Person类的对象都需要更新。使用指针方式的化只要更新那一份country数据就够了。

通过指针方式实现组合时要注意:

假设类C包含一个指向类D类型对象的指针,则需要在类C的构造函数中创建D类型的对象(new D),需要在类C的析构函数中销毁指针(delete)。这样才可以保证被拥有的对象的生命周期与其拥有者的生命周期是一致的。

扫描二维码关注公众号,回复: 4444418 查看本文章

参考博客:http://c.biancheng.net/view/1518.html

猜你喜欢

转载自blog.csdn.net/guanguanboy/article/details/84750139