C++ 混合继承

C++ 混合继承

继承被定义为一个类继承另一个类的属性的过程。被继承属性的类称为基类或者父类。继承基类属性的类(父类)称为派生类。

例如,一个儿子继承了父亲的属性。本文将简要介绍混合继承及其示例。

C++ 混合继承

定义

将多重、简单和分层继承等多种继承类型组合起来称为混合继承。

在简单继承中,一个类从一个基类派生。在多重继承中,一个类从两个类派生,其中一个父类也是派生类。在分层继承中,多个派生类从一个基类创建。

在混合继承中,有一种或多种继承类型的组合。例如,单一继承和分层继承的组合。因此,混合继承也被称为多路径继承。

示例

C++ 混合继承

这个图表显示了混合继承,它是单一继承和多重继承的结合。

单一继承 – 类B继承了类A。因此是单一继承的一个示例。

多重继承 – 类D从多个类(上面显示的B和C)继承。因此是多重继承的一个示例。

上述示例的语法代码

Class A
{
statement(s)
}:
Class B: public A
{
statement(s);
};
Class C
{
statement(s);
};
Class D: public B, public C
{
statement(s);
};

C++ 混合继承

这个示例展示了多级继承和单一继承的组合。

多级继承 – 如上图所示,Class B继承自Class A,Class C继承自Class B。因此,这是一个多级继承的示例。

单一继承 – 从上图可以看出,Class D继承自Class B。因此,这是一个单一继承的示例。

上述示例的语法代码

Class A 
{
statement(s);
};
Class B: public A 
{
statement(s);
};
Class C: public B 
{
statement(s);
};
Class D: public B
{
statement(s);
};

混合继承的现实示例

C++ 混合继承

在现实世界的场景中,我们都开车。所以 是属于 交通工具 类的一个类。这是单继承的一个实例。

如果我们谈论 法拉利 ,那是赛车和普通车的结合。所以 类Ferrari 是由 类Car类Racing 派生出来的。

因此,上面的示例是单重和多重继承。这是混合继承(单重 + 多重)的完美示例。

代码

#include 
using namespace std;
class vehicle
{
public:
vehicle()
    {
cout<< "This is a vehicle\n";
    }
};
class Car: public vehicle
{
public:
Car()
    {
cout<< "This is a car\n";
    }
};
class Racing
{
public:
Racing()
    {
cout<< "This is for Racing\n";
    }
};
class Ferrari: public Car, public Racing
{
public:
Ferrari()
    {
cout<< "Ferrari is a Racing Car\n";
    }

};
int main() {
    Ferrari f;
    return 0;
}

输出

This is a vehicle
This is a car
This is for Racing
Ferrari is a Racing Car    

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程