- 继承关系: is-a关系。
A是基类,B是派生类,比如A是student类,B是CS student类,那么一个B对象也是A对象。
- 复合关系:has-a关系
类C中有成员变量k,而k是类D的对象,则C和D是复合关系。比如C是人类,D是内脏类,则D对象是C对象的固有属性或组成部分
拿到两个类,他们有关系,先看看是不是继承关系(一个类是不是另一个类),或者是不是包含关系(一个类里有没有另一个类),或者这两类有没有共性,提出共性创造基类。
然后如果has-a关系,想访问另一个类private,可以设置为friend。
例子:人和狗,一个人可以有最多十条狗,一条狗只有一个主人。那么如何设置人和狗的关系呢。
首先肯定是复合关系,先声明一个Master类,然后Dog类里声明一个Master类指针,然后Master类里声明一个Dog类指针数组。这样Dog可以通过指针找到master,master也可以通过对应数组找到dog