C++ 中容器和继承的差异
容器: 当一个类对象在另一个类中被创建时,该对象将成为那个类的成员,这种类之间的关系被称为 容器关系 或 拥有 关系,因为一个类包含了另一个类的对象。
在这种关系中,包含另一个类中的对象和成员的类被称为 容器类 ,而作为另一个对象一部分的对象被称为 被包含对象 ,而包含另一个对象作为其部分或属性的对象被称为 容器对象 。
容器语法:
程序1:
下面的程序解释了C++中容器的概念:
解释: 在上面的第二个类中,有一个first
类的对象。这种继承关系被称为具有has_a
关系,因为类second
拥有类first
的对象作为其成员。从对象f
中调用了first
类的函数。
继承: 它是一种类能够从另一个类中继承属性和特性的能力,这被称为 基类 。它是面向对象编程中最重要的特性之一。从另一个类中继承属性的类称为 子类 或 派生类 ,而其属性被另一个类继承的类被称为 基类 或 超类 。
语法:
解释:子类名
是子类的名称,访问模式
是一种想要继承此子类的模式,例如public
,private
等。基类名
是要从中继承子类的基类名称。
注意: 派生类不会继承私有数据成员的访问权限。但是,它确实继承完整的父对象,其中包含该类声明的任何私有成员。
程序2:
下面的程序解释了C++的继承:
解释: 在上面的程序中,基类是Shape
,该类具有设置宽度和高度的功能。在Rectangle
类中,使用public
模式从基类继承属性和功能,并使用该类的getArea()
函数计算面积。
解释: 在上面的程序中, 子类 是从 父类 继承而来的,因此子类也继承了父类的公共数据成员。
继承和组合的区别:
继承 | 组合 |
---|---|
它使一个类从基类继承数据和函数 | 它使一个类将不同类的对象作为其数据成员包含其中。 |
派生类可以覆盖基类的功能。 | 容器类不能覆盖包含类的功能。 |
派生类可以向基类添加数据或函数。 | 容器类不能向包含类添加任何东西。 |
继承表示一种 “是一个” 关系。 | 组合表示一种 “有一个” 关系。 |