C++ 继承

来源:这里教程网 时间:2026-02-16 16:05:01 作者:

继承是面向对象编程系统(OOP)的特性之一,它允许子类获取父类的属性(数据成员)和函数(成员函数)。

什么是子类?

继承另一个类的类称为子类,它也称为派生类。

什么是父类?

被其他类继承的类称为父类,超类或基类。

继承语法

class parent_class{    //Body of parent class};class child_class : access_modifier parent_class{   //Body of child class};

在 C++编程中使用继承有什么好处

继承的主要优点是代码可重用性可读性。当子类继承父类的属性和函数时,我们不需要在子类中再次编写相同的代码。这使得重用代码变得更容易,使我们编写更少的代码,代码变得更具可读性。

让我们来看一个现实生活中的例子来理解这一点:让我们假设Human是一个具有height,weight,color等属性的类,以及诸如eat(),sleep(),dream(),work()等函数。

现在我们要创建Male和Female类,这些类是不同的,但由于男性和女性都是人类,他们共享一些共同的属性和行为(函数),所以他们可以继承Human类,其余的那些属性和函数可以单独写在它们的类中。

这种方法使我们编写更少的代码,因为这两个类从基类继承了几个属性和函数,因此我们不需要重写它们。此外,这使得更容易阅读代码。

继承示例

在我们讨论继承类型之前,让我们举个例子:

这里我们有两个类Teacher和MathTeacher,MathTeacher类继承了Teacher类,这意味着Teacher是一个父类,MathTeacher是一个子类。子类可以使用父类的属性collegeName。

另一个要注意的重点是,当我们创建子类的对象时,它调用子类的构造函数,子类构造函数自动调用基类的构造函数。

#include <iostream>using namespace std;class Teacher {public:  Teacher(){    cout<<"Hey Guys, I am a teacher"<<endl;  }  string collegeName = "Beginnersbook";};//This class inherits Teacher classclass MathTeacher: public Teacher {public:  MathTeacher(){    cout<<"I am a Math Teacher"<<endl;  }  string mainSub = "Math";  string name = "Negan";};int main() {  MathTeacher obj;  cout<<"Name: "<<obj.name<<endl;  cout<<"College Name: "<<obj.collegeName<<endl;  cout<<"Main Subject: "<<obj.mainSub<<endl;  return 0;}

输出:

Hey Guys, I am a teacherI am a Math TeacherName: NeganCollege Name: BeginnersbookMain Subject: Math

C++ 中的继承类型

1)单一继承

2)多级继承

3)多重继承

4)分层继承

5)混合继承

单继承

在单继承中,一个类完全继承一个类。

例如:假设我们有A类和B类.

B inherits A

单一继承的例子:

#include <iostream>using namespace std;class A {public:  A(){     cout<<"Constructor of A class"<<endl;  }};class B: public A {public:  B(){     cout<<"Constructor of B class";  }};int main() {   //Creating object of class B   B obj;   return 0;}

输出:

Constructor of A classConstructor of B class

多级继承

在这种类型的继承中,一个类继承另一个子类。

C inherits B and B inherits A

多级继承示例:

#include <iostream>using namespace std;class A {public:  A(){     cout<<"Constructor of A class"<<endl;  }};class B: public A {public:  B(){     cout<<"Constructor of B class"<<endl;  }};class C: public B {public:  C(){     cout<<"Constructor of C class"<<endl;  }};int main() {  //Creating object of class C  C obj;  return 0;}

输出:

Constructor of A classConstructor of B classConstructor of C class

多重继承

在多继承中,类可以继承多个类。这意味着在这种类型的继承中,单个子类可以具有多个父类。
例如:

C inherits A and B both

多重继承的例子:

#include <iostream>using namespace std;class A {public:  A(){     cout<<"Constructor of A class"<<endl;  }};class B {public:  B(){     cout<<"Constructor of B class"<<endl;  }};class C: public A, public B {public:  C(){     cout<<"Constructor of C class"<<endl;  }};int main() {   //Creating object of class C   C obj;   return 0;}
Constructor of A classConstructor of B classConstructor of C class

分层继承

在这种类型的继承中,一个父类具有多个子类。例如:

Class B and C inherits class A

分层继承的例子:

#include <iostream>using namespace std;class A {public:  A(){     cout<<"Constructor of A class"<<endl;  }};class B: public A {public:  B(){      cout<<"Constructor of B class"<<endl;  }};class C: public A{public:  C(){     cout<<"Constructor of C class"<<endl;  }};int main() {   //Creating object of class C   C obj;   return 0;}

输出:

Constructor of A classConstructor of C class

混合继承

混合继承是多种继承类型的组合。例如,遵循多重和分层继承的子类和父类关系都可以称为混合继承。

相关推荐