C++继承与组合
发布时间
阅读量:
阅读量
今天我们来探讨一下各类之间存在的关联性,在类的结构中,主要可以划分为以下三种关系:
无任何关联
继承关系(派生)
复合关系(类似于封闭类)
继承:体现为“是”这一逻辑关系。
– 基类为A,而B作为A的派生类存在。
– 在逻辑层面,要求“一个B对象同样具备A对象的特性”。
复合:体现为“有”这一逻辑关系。
– 当类C中包含成员变量k,并且k是类D的对象时,C与D之间便形成了复合关系。
– 在一般情况下,逻辑上要求“D对象属于C对象的固有组成部分或属性”。
关于继承关系的应用
设计了一个CMan类用于表示男性个体
随后发现需要创建一个CWoman类来表示女性个体
CWoman类与CMan类在某些方面具有共通之处
是否应当让CWoman类从CMan类进行派生?

此种观点显然存在逻辑错误,因为“一个女性同时也是一个男性”在逻辑层面无法成立!
正确的做法应是提炼男性与女性的共性特征,
设计一个CHuman类,用以表示“人类”这一概念,随后CMan与CWoman类均可从该CHuma
全部评论 (0)
还没有任何评论哟~
