继承关系和复合关系(c++)

继承关系和复合关系(c++),第1张

类之间的两种关系: 继承:“是”关系。


基类 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;
};   

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/585046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存