类之间的两种关系:
继承:“是”关系。
基类 A,B是基类A的派生类。
逻辑上要求:“一个B对象也是一个A对象”
复合:“有”关系。
类C中“有”成员变量k,k是类D的对象,则C和D是复合关系
一般逻辑上要求:“D对象是C对象的固有属性或组成部分”。
继承关系的使用
写了一个 CMan 类代表男人
后来又发现需要一个CWoman类来代表女人
CWoman类和CMan类有共同之处 就让CWoman类从CMan类派生而来,是否合适? 是不合理的! 因为“一个女人也是一个男人” 从逻辑上不成立!
好的做法是概括男人和女人共同特点, 写一个 CHuman类,代表“人”,然后CMan和CWoman都从CHuman派生。
复合关系的使用
几何形体程序中,需要写“点”类,也需要写“圆”类,
这个是不对的
几何形体程序中,需要写“点”类,也需要写“圆”类,两者的关系就是复合关系 ---- 每一个“圆”对象里都包含(有)一个“点”对象,这个“点”对象就是圆心
复合关系的使用
部分代码如下:
class CDog;
class CMaster
{
CDog dogs[10];
};
class CDog
{
CMaster m;
};