有关C++类的继承以及继承方式的笔记

431 阅读3分钟

💡前言

C++中,继承是面向对象的一个重要概念,是C++语言的一种重要机制。

我们通过继承现有的类来创建一个新的类。

本篇笔记的内容是:

  • 继承
  • 继承方式

💡什么是继承?

继承使一种机制,通过继承,我们可以利用已有的数据类型来定义新的数据类型。也就是说,继承允许我们依据一个类来定义一个新类。

💡为什么要有继承机制?

提高代码的重用性和提高执行效率。

💡如何理解继承?

打个比方,在这里,有一个动物类,我们可以通过动物类来派生出鸟类,狗类,熊类等等。

此时,这个动物类就是一个基类,或者可以叫父类。

鸟类(狗类,熊类等)就是派生类,或者可以叫子类。

再比如,我们从鸟类再派生出鸡类,鹦鹉类,企鹅类等等。

由于鸟类的有某些共性或特点,所以我们将鸟类来描述鸡,鹦鹉,企鹅等,然后我们再举出鸡类,鹦鹉类,企鹅类各自的特点就行。这就是继承机制,我们可以理解为,每个派生类都是基类的特殊版本。

当父类已经存在,我们就可以继承这个父类,派生出子类。我们只需在子类中进行一些修改和删减。这种继承机制使得我们可以重用父类的代码,专为子类编写新的代码。

💡如何使用继承?

先来看一段代码:

class Birds {

···

};

class Chickens : public Birds {

···

};

在上述例子中,我们使Chickens类继承了Birds类。

下面给出继承的格式:

class <子类名> : 继承方式 <父类名> {

};

备注:

  • 继承方式:publicprotectedprivate.
  • 如果没有给出继承方式,那么默认为private.

💡继承方式

✨继承方式

我们知道,类的访问权限有三种:publicprotectedprivate,在类的外部只能访问到类的公有成员,私有成员和保护成员是不能访问的。

根据访问权限的不同,继承方式也可分为三种:

  • 公有继承public

当一个子类公有继承父类时,子类能够访问父类的公有成员以及保护成员,但是父类的私有成员是不能直接被子类访问,只能通过调用父类的公有成员或保护成员来访问其私有成员。

公有继承使得基类作为开源代码不断让类程序员派生代码从而迅速传播。

  • 保护继承protected

当一个子类保护继承了父类时,父类的公有和保护成员都将成为子类的保护成员。

保护继承使得基类作为公司的内部技术不断接续和派生。

  • 私有继承private

当一个子类保私有继承了父类时,父类的公有和保护成员都将成为子类的私有成员。

私有继承使得某技术世代单传,开发者在其派生类中也只能通过调用基类的成员函数来访问基类。

(通常我们不使用protectedprivate继承,初学者很少涉及)


✨访问控制

image.png

  • 公有继承将基类的保护成员和公有成员视为自己的保护成员和私有成员
  • 保护继承将基类的保护成员和公有成员全变为自己的保护成员
  • 私有继承将基类的保护成员和公有成员全变为自己的私有成员

💡写在最后

本章内容参考书:

《C++程序设计教程》---- 钱能 著


好了,本篇笔记就到写这,欢迎大家到评论区一起讨论!