Advertisement

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)

还没有任何评论哟~