C++中类的继承和类的组合之间有什么共同点,区别是什么?非常感谢!!

如题所述

第1个回答  2012-11-22
继承和组合都允许由已存在的类型创建新类型,两者都是在新类型中嵌入已存在的类型的
子对象。
区别是组合只实现了用一个也有的类型创建一个新的类型,而继承不仅可以创建一个新的类型,还可以使用原来类型的接口。本回答被提问者采纳
第2个回答  2012-12-20
组合和继承的共同点:
继承和组合的使用都可以减少重复代码,同时若类B是类A的内嵌对象,则B类具有A类的全部数据。
不同点:
组合是通过在其他类中定义对象来使用类中的方法和属性,不能访问父类的任何接口。而继承则是从父类中得到方法和属性,即可以得到父类的全部接口,并加以调用。
通过组合生成的类和被组合的类之间的逻辑关系:组合生成的类具有被组合类的全部内容,但是并不包括被组合类的全部接口,就是通过被组合的类的对象只能访问组合类的成员函数,但不能直接访问到被组合类的成员函数。
继承类与基类的逻辑关系:即通过派生类的对象不但可以访问派生类的成员函数,也能访问基类的成员函数,派生类是可以完全继承基类的任何内容的包括全部接口。

c++,什么时候用类的组合,什么时候用类的继承
如果你要用程序描述的对象之间主要是有一些什么的关系,最好用类的组合;如果主要是是一些什么的关系,最好用类的继承。比如,汽车有4个轮子,有1个方向盘,有若干车灯。你就需要定义汽车类,轮子类,方向盘类,车灯类,将其它3个类的对象组合成汽车类的对象。再比如,杨树,柳树,橘树都是树,要描述...

在C++中如何区分类的继承和包含这两种关系
继承是从父类继承公有的属性和方法, 这些公有的属性和方法可以供多个子类使用, 写在父类里边就不用维护多份代码.包含就是定义另一个类的对象, 从这个类继承也可以得到这个类的想要的属性和方法, 与继承不同的是, 包含不是父子关系, 比如你写一个男人类, 他有一个女朋友对象, 那你只能使用包含,...

c++继承和成员对象的问题
面向对象编程讲究的是代码复用,继承和组合都是代码复用的有效方法。组合是将其他类的对象作为成员使用,继承是子类可以使用父类的成员方法。引用一个生动的比方:继承是说“我父亲在家里给我帮了很大的忙”,组合是说“我请了个老头在我家里干活”。继承 在继承结构中,父类的内部细节对于子类是可见的。

求救一个 c++中 类与类之间的继承关系具有?
传递性,比如B继承了A,C继承了B,那么C自然也是继承了A里面的东西,就像是爷爷的后代爸爸,爸爸的后代儿子,那么爸爸有爷爷的基因,儿子也有爷爷的基因。这是传递性。

C++中类和类之间的关系都有哪些
c++中类与类的关系,以类A与类B为例有以下几种关系:1、继承关系 单一继承 多重继承 2、内嵌关系 class Tree \/\/树类 { public:class Branch \/\/树叉类 { void func();};};class River \/\/河类 { public:class Branch \/\/河叉类 { void func();};};Tree tree;tree.Branch.func();River...

C++中的类继承究竟有什么作用?
继承能体现事物的普遍性和特殊性。举个例子,地球上有人,人有普遍性特点:也就是能说话,能思考;把这些普遍性特点打包成一个类名称叫People。但是每个国家的语言不同(特殊性),所以对每个国家一个类,而且这个类继承People类。比如我们给中国人写一个类,这个新类名称叫ChinaPpeople,这样后这个类...

...类间关系有哪些?他们的作用分别是什么?他们之间的区别是什么...
如果你定义了friend,那就是友元关系呗。如果你定义成层次关系,那就是父子、子父等等之类关系啊。如果你没有定义类之间的关系,那就是两个相互之间陌生关系的类呗

c++中的类是什么作用,
封装,继承,多态.

C++中类之间的依赖关系
关系5: 组合关系(composite)组合关系也是一种部分和整体之间的关系。您能区分组合与聚合的区别吗?这个问题当作业来讨论吧。关系6:泛化关系(Generalization)泛化关系就是常见的继承关系。Student.csdn.net社区中的用户可以模型化为上图。关系7:依赖关系(Dependency)比如用户有一个登录的操作,用户密码在数据...

C++的类与C语言的什么数据结构相似
C++中的结构体和类的异同:一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有...

相似回答