Javatpoint标志
Javatpoint标志

c++的继承

在c++中,继承是一个对象自动获得其父对象的所有属性和行为的过程。这样,您就可以重用、扩展或修改在其他类中定义的属性和行为。

在c++中,继承另一个类成员的类称为派生类,继承其成员的类称为基类。派生类是基类的专门化类。


c++继承的优点

代码的可重用性:现在可以重用父类的成员了。因此,不需要再次定义成员。所以这门课只需要更少的代码。

继承的类型

c++支持五种类型的继承:

  • 单继承
  • 多重继承
  • 分层的继承
  • 多级继承
  • 混合继承
c++的继承

派生类

派生类定义为从基类派生的类。

派生类的语法:

在那里,

derived_class_name:它是派生类的名称。

可见性模式:可见性模式指定基类的特性是公开继承还是私有继承。它可以是公共的也可以是私人的。

base_class_name:它是基类的名称。

  • 当基类由派生类私有继承时,基类的公共成员变成派生类的私有成员。因此,基类的公共成员不能被派生类的对象访问,只能通过派生类的成员函数访问。
  • 当基类被派生类公开继承时,基类的公共成员也成为派生类的公共成员。因此,基类的公共成员可以被派生类的对象以及基类的成员函数访问。

注意:

  • 在c++中,默认的可见性模式是私有的。
  • 基类的私有成员永远不会被继承。

c++单继承

单继承定义为仅从一个基类继承派生类的继承。

c++的继承

其中“A”是基类,“B”是派生类。

c++单级继承示例:继承字段

当一个类继承另一个类时,它被称为单级继承。让我们看看单级继承的例子,它只继承字段。

输出:

工资:60000奖金:5000

在上面的示例中,Employee是基地类和程序员是派生的类。

c++单级继承示例:继承方法

让我们看另一个c++中继承的例子,它只继承方法。

输出:

吃……叫……

让我们看一个简单的例子。

输出:

a与b的乘法是20

在上面的例子中,类A是私有继承的。因此,类'A'的mul()函数不能被类B的对象访问,它只能被类B的成员函数访问。

如何使私有成员可继承

私有成员不可继承。如果我们通过使其公开来修改可见性模式,但这会剥夺数据隐藏的优势。

c++引入了第三个可见性修饰符,即:受保护的。被声明为protected的成员可以被类中的所有成员函数以及直接从它派生的类访问。

可见性模式可分为三类:

c++的继承
  • 公共:当成员声明为public时,程序的所有函数都可以访问它。
  • 私人:当成员声明为private时,它只能在类中访问。
  • 受保护的当成员被声明为protected时,它可以在它自己的类以及从它直接派生的类中访问。

继承成员的可见性

基类可见性 派生类可见性
公共 私人 受保护的
私人 不是继承 不是继承 不是继承
受保护的 受保护的 私人 受保护的
公共 公共 私人 受保护的

c++多级继承

多级继承是从另一个派生类派生一个类的过程。

c++的继承

c++多级继承示例

当一个类继承另一个类,而另一个类又被另一个类继承时,在c++中称为多级继承。继承是可传递的,因此最后一个派生类获得其所有基类的所有成员。

让我们看看c++中多级继承的例子。

输出:

吃……叫……哭泣……

c++多重继承

多重继承派生从两个或多个类继承属性的新类的过程。

c++的继承

派生类的语法:

让我们看一个简单的多重继承示例。

输出:

a的取值为:10 b的取值为:20 a与b相加为:30

在上面的例子中,类'C'在公共模式中继承了两个基类'A'和'B'。

继承中的模糊解析

当具有相同名称的函数出现在多个基类中时,使用多重继承可能会产生歧义。

让我们通过一个例子来理解这一点:

输出:

错误:对'display'的引用有歧义display();
  • 上面的问题可以通过对函数使用类解析操作符来解决。在上面的例子中,派生类代码可以重写为:

在单继承中也可能出现歧义。

考虑以下情况:

在上面的例子中,派生类的函数覆盖基类的方法。因此,对display()函数的调用将简单地调用派生类中定义的函数。如果要调用基类函数,可以使用类解析操作符。

c++混合继承

混合继承是一种以上类型继承的组合。

c++的继承

让我们看一个简单的例子:

输出:

输入a的值:10输入b的值:20输入c的值:30输入a、b、c的乘:6000

c++层次继承

层次继承被定义为从基类派生多个类的过程。

c++的继承

层次继承的语法:

让我们看一个简单的例子:

输出:

输入矩形的长度和宽度:23 20矩形的面积为:460输入三角形的底和高:2 5三角形的面积为:5
下一个话题 c++聚合





Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map