前言
在面向对象编程(OOP)中,封装、继承和多态是三大核心特性。它们构成了 C++ 区别于纯面向过程语言的关键。之前我们利用类和对象的思想以及 STL 中的适配器了解了封装,今天重点深入探讨继承这一特性,特别是其中容易混淆的同名成员处理机制。
一、什么是继承?
继承(inheritance) 是面向对象程序设计中代码复用的重要手段。它允许我们在保持原有类(基类)特性的基础上进行扩展,增加方法和属性,从而产生新的类(派生类)。这体现了由简单到复杂的认知过程,也是类设计层次的复用。
假设我们有两个类:Student 和 Teacher。它们都有姓名、地址、电话、年龄等成员变量,以及身份认证的成员函数。如果分别定义,代码会大量冗余。当然,它们也有独有成员,比如老师有职称,学生有学号;老师授课,学生学习。
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() {
// ...
}
protected:
string _name = "张三";
int _age = 18;
string _address;
string _tel;
string _title;
};
{
;
}







