了解 C++ 中的混合继承是什么、它是如何工作的以及它为何有用。使用代码片段探索 C++ 中混合继承的一些示例。
在继承过程中,一个类的对象获取另一个类的属性和行为。这里,一个新类是从现有基类派生的。派生的成员类通常称为子类,父类的成员称为基类。子类派生后,继承父类的所有属性和方法。
此外,子类可以具有其专用的属性和方法。本地添加到现有类的附加功能不会影响它从父类继承的属性。因此,新类别将结合两个类别的特征。
C++ 中的继承允许另一个类从一个类获取特征和行为。基类是派生类的父类,派生类是派生类的继承对象。除了继承之外,子类还可以具有为特定用途而设计的独特属性和方法。重要的是,本地添加的特性不会影响继承的特性,因此父类和子类的组合特性很容易合并到新类中。在 C++ 中,这种动态可以实现有效的代码重用和适应性强的类层次结构。
现实中,程序员通常需要开发一个对象,该对象必须:
1) 拥有其父级的所有品质,此外,
2) 在某些方面,坚持是很特别的。
在主类中编码此类特殊属性可能不一定实用且经济。在这种情况下,通过扩展基类派生出一个新类。此外,它还源自具有额外品质的另一个类别。通过这种方式,您可以重用、扩展或修改其他类中定义的属性和行为。因此,从多个类派生的子类提供了一个易于维护和移植的对象。派生类是基类的专门类。
从技术上讲,关键字“extends”用于继承类。 C++ 使用冒号(“:”)符号继承类。
当在 C++ 编程中创建需要双重性质的对象时(即,既具有将其与其父对象区分开的独特属性,又具有其父对象的所有品质),继承起着至关重要的作用。将卓越品质直接添加到主类别中的传统方法可能并不总是实用或经济的。
创建一个扩展基类甚至可能从具有额外属性的另一个类派生的新类来解决此问题。此方法通过允许重用、扩展或更改不同类中定义的特征和操作来提高代码效率和可维护性。
通过从多个类派生子类来创建无缝组合继承特征并同时容纳专用属性的复杂对象。这使得代码效率显着提高了 20%,并且易于维护且易于在各种环境中移植。通过优化开发流程和应用速度,程序员可以在C++程序中构建具有混合继承的通用和自适应对象。
继承和实现的组合的使用因派生类的目的而异。 C++ 中有不同类型的继承,如下所列:
换句话说,在面向对象编程 (OOP) 中,派生类或子类只能有一个父类。
单一继承鼓励代码重用,并通过将单一基类的方法和属性传递给派生类,在类之间创建层次结构链接。除了添加新的属性和方法之外,派生类还可以修改或扩展从源类继承的功能。
这是一个基本的 C++ 混合继承程序:
使用命名空间 std,#include
// 基类 Animal { public: void eat() { cout \\ “动物正在吃东西” \\ endl;
// 只有一个继承的派生类 Dog: public Animal { public: void bark() { cout \\ “Dog is barking” \\ endl; ;
函数 int main() { Dog myDog; myDog.eat();继承自Animal类myDog.bark();专门针对 Dog 类
返回0;
在此实例中,使用单继承从 Animal 类创建 Dog 类。 Dog 类添加了自己的方法 bark(),并继承了 Animal 类的 eat()方法。
这里B类和C类都是从基类A类派生的。
汽车的层次分类显示两个类别。 “汽油车”和“电动车”均源自基础类“汽车”。
在某些情况下,我们需要组合应用两种或多种继承类型来设计程序。当一个程序涉及多种继承类型时,称为混合继承。
混合继承是简单继承、多重继承和分层继承的组合。通常,在多重继承中,一个类派生自两个类,其中父类之一也是派生类而不是基类。
C++ 中的混合继承 是指类从多种形式或任何继承的组合派生的继承。 C++ 中的混合继承也称为多路径继承,即一个派生类可以在不同路径上继承基类的属性。有时也称为多路径继承。例如,可以通过多级继承和分层继承相结合的方式来实现。
简而言之,混合继承是两种或多种继承类型的组合。例如,通过在同一程序中实现单级继承和多级继承。
该图代表了两种继承的混合组合;单继承和多重继承。这里,在单继承中,类 B 从类 A 派生。类似地,在多重继承中,类 D 从多个类继承。这里是B类和C类。因此,单继承和多重继承的混合形成了混合继承。
混合继承适用于需要在程序中应用多个继承的场景。
C++ 中混合继承的典型语法和语义如下所示:
示例 1:单继承 + 多重继承
让我们看看单继承和多重继承是如何实现的。
该图中的每个块代表一个类,相应的箭头代表类的继承。
示例2:单级+多级继承
我们还可以实现其他类型的继承来构成混合继承。
让我们考虑一个实时示例。
我们从类 Vehicle 派生出一个汽车子类。另一个类别的特点是赛车。当我们从 Car 类和 Racing 类导出最终实体时,它将给出组合输出。这个衍生品就是法拉利——赛车。
这是一个简单的程序,用于说明C++ 中的混合继承的概念。