1. 聚合:
是关联关系的一种特例,体现的是整体与部分拥有的关系,即 has-a 的关系,此时整体与部分之间可以分离。
- //学校
- classSchool
- {
- };
- //学生
- classStudent
- {
- private:
- School*ps;
- };
可以看到 Student 类中包含了一个 School 类的对象 指针 ,而且在创建一个Student 类对象时一定要对指针进行初始化,就好像当你上学时一定会有一个学校!这个时候,我们可以说 Student 的每一个对象都有一个School 的属性来标识它是属于哪个学校的!
但是两者之间并不存在“同生共死”的关系,也就是说当这个学生不存在的时候,学校还是有的!
2. 组合:
也是关联关系的一种特例,体现在一种 contain - a 的关系,这种关系比聚合更强,整体与部分是不可分的。
copy