前言
对于 C++ 来说,有三大核心特性是面向对象编程(OOP)的经典三要素:封装、继承、多态。这三个特性是 C++ 区别于纯面向过程语言的核心,也是理解 C++ 面向对象思想的关键。之前利用类和对象的思想和 STL 中的适配器了解过封装,本篇文章就详细介绍一下继承这个特性。
什么是继承?
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要手段,它允许我们在保持原有类(基类)特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。
以前我们接触的函数层次的复用(模板),继承是类设计层次的复用。
下面我们设计了两个类:Student 和 Teacher,它们都有姓名/地址/电话/年龄等成员变量,都有 identity 身份认证的成员函数。如果设计到两个类里面就是冗余的。当然它们也有一些不同的成员变量和函数,比如老师独有成员变量是职称,学生的独有成员变量是学号;学生的独有成员函数是学习,老师的独有成员函数是授课。
class Student {
public:
// 进入校园/图书馆/实验室刷二维码等身份认证
void identity() {
// ...
}
// 学习
void study() {
// ...
}
protected:
string _name = "peter"; // 姓名
string _address; // 地址
string _tel; // 电话
int _age = 18; // 年龄
int _stuid; // 学号
};
class Teacher {
public:
// 进入校园/图书馆/实验室刷二维码等身份认证
void identity() {
// ...
}
// 授课
void teaching() {
// ...
}
:
string _name = ;
_age = ;
string _address;
string _tel;
string _title;
};
{
;
}









