继承关系:

  • “是”的关系
  • B是基类A的一个派生类
  • 逻辑上要求:“一个B对象也是一个A对象”。

例:

“男人”是一个“人”,“女人”也是一个“人”,因此“男人”和“女人”就可以从“人”中继承得到,但男人和女人不能互相继承。

复合关系:

  • “有”关系
  • 类C中“有”成员变量k,k是类D的对象,则C和D是复合关系
  • 一般逻辑上要求:“D对象是C对象的固有属性或组成部分”。

例:

“狗”拥有一个“主人”,一个“主人”拥有多条“狗”。显然,“狗”不是“主人”,“主人”也不是“狗”,但一条“狗”“有”一个“主人”,一个“主人”有多条“狗”,这样是成立的,这就是复合关系。

具体实现:

class CDog;
class CMaster
{
    CDog *dogs[10];
};
class CDog{
    CMaster *master;
};

 

posted on 2018-03-27 19:56  宵夜在哪  阅读(404)  评论(0编辑  收藏  举报