before|正文之前:
c++实验代码及学习笔记(九)
你好! 这是一个高程实验课的代码记录及学习笔记。我将记录一些重要的知识点、易错点。但是作为大学生,水平很低,敬请指点教导、优化代码。
1问题
本节课我们学习了类的继承和派生,单继承、多重继承、多继承与虚基类等知识。
这道题实际上就是对知识的直接考察,故本次笔记侧重于对知识的罗列。
2精讲
参考文章:C++ 类的继承与派生
C++中的继承(1) 继承方式
首先我们来讲讲基本概念。
继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。
简单的说,继承是指一个对象直接使用另一对象的属性和方法。
C++中的继承关系就好比现实生活中的父子关系,继承一笔财产比白手起家要容易得多,原始类称为基类,继承类称为派生类,它们是类似于父亲和儿子的关系,所以也分别叫父类和子类。而子类又可以当成父类,被另外的类继承。
用我制作的沙雕图来解释一下:
2.1派生类
派生类的定义格式如下:
class <派生类名>:[继承方式]<基类名1>,[继承方式]<基类名2>,...[继承方式]<基类名n>]
{
<派生类新增的数据成员和成员函数定义>
};
a. :后面的被称为基类名表,基类名表的构成: 访问控制+基类名;
b. 访问控制表示派生类对基类的继承方式,使用关键字:
public : 公有继承;
private: 私有继承;
protected: 保护继承;
3种继承方式下基类成员在派生类中的访问属性:
2.2继承的重要说明
a. 子类拥有父类除了父类构造和析构函数,所有的成员函数和成员变量;
b. 子类就是一种特殊的父类;
c. 子类对象可以当做父类的对象使用;
d. 子类可以拥有父类没有的方法和属性(如图一的绿色❤)。
2.3派生类的构造与析构
派生类构造函数定义格式如下:
<派生类名>(<总形式参数表>):<基类名1>(<参数表1>),
<基类名2>(<参数表2>),[...,<基类名n>(<参数表n>),其他初始化项>]
{
[<派生类自身数据成员的初始化>]