聚合:表示两个对象之间是整体和部分的弱关系,成员对象可以脱离整体对象而独立存在。has-a关系
组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。部分与整体具有统一的生存期。contains-a关系
代码中体现为:
部分类对象(子对象)以类属性的形式出现在整体类的定义中
组合:
class A
{
};
class B
{
A a1, a2;
};
聚合:
class C
{
A *a;
};