C++ 继承2025 年 8 月 29 日 | 阅读 12 分钟 在 C++ 中,继承是一个过程,其中一个对象自动继承其父对象的所有属性和行为。它允许我们重用、扩展或修改在其他类中定义的属性和行为。 在 C++ 中,继承另一个类成员的类称为派生类,而其成员被继承的类称为基类。派生类是基类的专用类。 语法它具有以下语法: C++ 继承基本示例让我们举一个例子来说明 C++ 继承。 示例编译并运行输出 Animal Sounds Dog Barks 说明 在此示例中,我们有一个基类 Animal,其中包含一个 eat() 函数。之后,我们有一个 Dog 派生类,它继承自 Animal 并包含其自己的函数 bark()。在 main() 函数中,创建了 Dog 类的对象 dog。最后,dog.eat() 调用从 Animal 继承的函数,dog.bark() 调用 Dog 的自身函数。 C++ 中的继承类类型![]() C++ 继承主要有两种类。 1) 基类基类是为其他类提供共同属性和方法的类。它定义了其派生类可以重用或覆盖的属性和行为,并且是进一步类扩展的基础。它充当父类和超类。 语法 它具有以下语法: 2) 派生类派生类是继承基类属性和行为的类。它可以包含一些新功能或覆盖基类的现有功能。它也被称为子类或次级类。 语法 它具有以下语法: C++ 继承类示例让我们举一个例子来说明 C++ 中的继承类。 示例编译并运行输出 Derived Class Value: 10 Base Class Value: 15 继承的类型C++ 中主要有五种继承方式。
![]() 在这里,我们将逐一讨论所有类型的继承。 1) C++ 单一继承在 C++ 中,单一继承定义为派生类仅从一个基类继承的继承。 ![]() 其中“A”是基类,“B”是派生类。 语法 它具有以下语法: C++ 单一继承示例让我们举一个例子来说明 C++ 中的单一继承。 示例编译并运行输出 Salary: 65000 Bonus: 5500 说明 在此示例中,我们有一个基类 Account 和派生类 Programmer。之后,该程序展示了 C++ 中的单一继承,Programmer 类继承自单个基类 Account。Programmer 对象 p1 可以直接访问继承的 salary 和其自身的 bonus。 阅读更多:单一继承 2) C++ 多重继承在 C++ 中,多重继承是一个类可能继承多个基类的属性和行为的过程。在这种继承中,一个类可以继承自多个类。它提供了更大的灵活性和代码重用性,但也增加了代码的复杂性。 ![]() 语法 它具有以下语法: C++ 多重继承示例让我们举一个简单的例子来说明 C++ 中的多重继承。 示例编译并运行输出 The value of a is : 10 The value of b is : 20 Addition of a and b is : 30 说明 在此示例中,类 'C' 以公共模式继承两个基类 'A' 和 'B'。类 A 和 B 具有自己的数据成员和函数。之后,类 C 中的 show() 方法检索两个继承的值并将它们相加以进行输出。 阅读更多:多重继承 3) C++ 多层继承C++ 多层继承是一个概念,其中一个类从派生类派生,从而形成继承链。可以有任意数量的级别。让我们考虑三个类,例如类 A、B 和 C,其中类 A 是基类,类 B 是中间类,类 C 是派生类。它表明一个类继承了另一个类,而另一个类又被另一个类继承。 ![]() 语法 它具有以下语法。 C++ 多层继承示例让我们看看 C++ 中多层继承的例子。 示例编译并运行输出 Eating... Barking... Weeping... 说明 在此示例中,我们演示了 C++ 中的多层继承,其中 BabyDog 类继承自 Dog,而 Dog 类又继承自 Animal。BabyDog 的对象 d1 可以访问所有三个类的成员函数,展示了继承的行为,例如吃、叫和哭。 阅读更多:多层继承 4) C++ 混合继承在 C++ 中,混合继承是多种继承类型组合的过程。在这种继承中,我们可以将单一继承、多重继承、多层和层次继承的元素包含在类中。 ![]() 语法 它具有以下语法。 C++ 混合继承示例让我们举一个简单的例子来说明 C++ 中的混合继承。 示例编译并运行输出 Enter the value of 'a' : 10 Enter the value of 'b' : 20 Enter the value of 'c' : 30 Multiplication of a, b, c is : 6000 阅读更多:混合继承 5) C++ 层次继承在 C++ 中,层次继承定义为从单个基类派生多个类的过程。在这种继承中,我们可以将基类中所有在子类中通用的特征包含进来。 ![]() 语法 它具有以下语法。 C++ 层次继承示例让我们举一个例子来说明 C++ 中的层次继承。 示例编译并运行输出 Enter the length and breadth of a rectangle: 23 20 Area of the rectangle is : 460 Enter the base and height of the triangle: 2 5 Area of the triangle is : 5 说明 在此示例中,我们有从公共基类(Shape)派生的两个派生类(Rectangle 和 Triangle)。基类包含一个用于输入尺寸的成员函数,派生类利用该函数来计算和返回矩形和三角形的面积。 阅读更多:层次继承 继承中的访问说明符在 C++ 中,访问说明符主要可分为三类。 1) 公有继承 在公有继承中,所有公有基类成员保持公有,而保护成员在派生类中保持保护。它说明了真正的“是-一个”关系。 2) 保护继承 保护继承确保派生类中的公有和保护基类成员都保持保护状态。在派生类外部访问受到限制。 3) 私有继承 在私有继承中,基类的所有公有和保护成员在派生类中都成为私有的。当继承的目的是代码重用而不是“是-一个”关系时,会使用它。 继承成员的可访问性下表显示了 C++ 中继承成员的可访问性。
C++ 继承的影响在 C++ 中,继承以不同的方式影响类的不同组件。其中一些影响如下。 1) 静态成员和继承 静态成员与类相关,而不是与特定对象相关。类的所有实例都共享这些成员,并且它们不参与常规的继承。虽然派生类不直接继承静态成员,但仍然可以通过基类的名称或派生类的作用域访问它们。 2) 友元函数和类的继承 友元函数和友元类允许外部访问类的私有和保护成员。它们为紧密关联的交互、调试、运算符重载以及允许特定相关的函数或实用类访问提供了继承的灵活性。 3) 继承中的构造函数和析构函数 (C++) 构造函数和析构函数是 C++ 对象生命周期中的重要组成部分。所有类都包含构造函数和析构函数,无论是程序员显式定义的,还是编译器隐式创建的。 构造函数在继承中的行为
析构函数在继承中的行为
C++ 析构函数继承示例现在让我们来看一个 C++ 中析构函数在继承中行为的例子。 示例编译并运行输出 Parent class constructor is executed Child class constructor is executed Child() class destructor is executed Parent class destructor is executed 说明 在此示例中,当我们创建一个 Child 类对象时,首先调用 Parent 类构造函数,然后调用 Child 类构造函数。当程序终止时,析构函数按相反的顺序调用:首先是 Child 析构函数,然后是 Parent 析构函数,这表明了继承类的生命周期顺序。 继承中的多态性在 C++ 继承中,多态性允许我们在派生类中重新定义基类成员函数,这称为函数重写。它是运行时多态性的一个重要特性,其中要执行的函数在运行时而不是编译时确定。 C++ 继承中的多态性示例现在让我们来看一个 C++ 中继承中多态性的例子。 示例编译并运行输出 It is a Derived Function. 说明 在此示例中,Derived 类重新定义了最初在 Base 类中声明的 print() 函数。当在 Derived 类对象 d_object 上调用 print() 函数时,将执行 Derived 类中的重写版本,从而产生输出“It is a Derived Function”。 C++ 继承选择题1) C++ 中类的默认继承模式是什么?
答案:b) 私有 2) 派生类可以直接访问基类的私有成员吗?
答案:a) 否 3) 公有继承模式是什么?
答案:d) 是一个关系。 4) 当发生私有继承时,基类的公有成员会发生什么?
答案:c) 成为私有。 5) 哪个访问说明符允许基类成员只能在派生类中访问,而在类外部不可访问?
答案:d) 保护 下一主题C++ 中的单一继承 |
在 C++ 中,单一继承是面向对象编程 (OOPs) 的一个重要概念,它允许派生类继承另一个基类的属性和行为。在 C++ 中,一个类为了重用而继承其属性和行为的类称为超类(基类)。...
阅读 6 分钟
继承的概念与现实世界非常相似。就像儿子继承父亲的属性(特征和行为)一样,父亲本身也继承儿子祖父的属性。在编程规范中,当一个类继承属性时,就会发生继承...
阅读 2 分钟
一个类从父类继承属性和特性的能力被称为继承。继承是 C++ 中面向对象编程的关键特性之一。继承可以根据派生类之间的关系进行分类...
7 分钟阅读
继承被定义为一个类继承另一个类属性的过程。继承其属性的类称为基类或该类的父类。继承基类(父类)属性的类是...
阅读 2 分钟
在 C++ 中,聚合是其中一个类将另一个类定义为任何实体引用的过程。它是重用类的另一种方式。它是一种关联形式,表示“拥有一个”关系。我们使用聚合的概念来表示“拥有一个”...
阅读 4 分钟
本节将讨论 C++ 编程语言中的多重继承。当我们获取一个类的特性和功能到另一个类时,这个过程称为继承。通过这种方式,我们可以重用、扩展或修改所有属性和行为...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India