首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

组合关系、属于继承关系吗?该如何解决

2012-02-17 
组合关系、属于继承关系吗?组合类不能使用他所包含的子类的保护数据,不能重定义被子类子类的虚函数,没有继

组合关系、属于继承关系吗?
组合类不能使用他所包含的子类的保护数据,不能重定义被子类子类的虚函数,没有继承被包含类的接口
                                        唯一继承的是被包含类的实现,

class   cla
{
  string   name;
  vallarray <int>   score;
  .....
}

cla   为组合类     string   vallarray <int> 为被包含类

cla   与   string   或vallarray   之见是否是继承关系?

[解决办法]
组合不是继承 但是与私有继承的思想差不多 私有继承又叫做实现继承
通常的继承叫做接口继承
[解决办法]
cla 与 string 或vallarray 之见是否是继承关系
-----------------------------
不是。

你就把string 或vallarray 当作cla 的成员来看。
[解决办法]
公有继承描述严格的 "IS-A "的关系,即如果不满足 "IS-A "的关系,用公有继承就是不合适的。
组合描述的松散的 "HAS-A "的关系,即如果存在 "HAS-A "的关系,我们可以用组合,但是其他的关系我们也可以选择组合。
[解决办法]
继承是从一般到更具体的关系。
组合是整体和部分的关系。

所以LZ所举的是给合关系。

再举两个例子。
交通工具,汽车。两者是继承关系。
汽车是交通工具中更具体的一种。

汽车,轮胎。 两者是组合关系。
轮胎是汽车的一部分。

热点排行