C++ 继承机制详解
1. 继承的概念及定义
1.1 继承的概念
在面向对象设计中,我们常遇到类似'人'、'学生'、'工人'这样的层级关系。它们共享姓名、年龄等基础属性,又拥有各自独特的特征(如学号、职称)。如果每个类都重复定义这些公共成员,代码冗余会非常严重。
C++ 的继承(inheritance)机制正是为了解决这个问题而生的。它允许我们在保持原有类特性的基础上进行扩展,增加新的方法和属性,从而产生新的类——派生类(子类),而被继承的类称为基类(父类)。
核心优势:以前我们接触的多是函数层次的代码复用,继承则是类设计层次的复用。这体现了由简单到复杂的认知过程,也是面向对象程序设计的基石之一。
示例对比
没有继承时,Student 和 Teacher 都需要重复定义姓名、电话等成员:
class Student {
public:
void identity() { /* ... */ }
void study() { /* ... */ }
protected:
string _name = "peter";
int _age = 18;
int _stuid; // 学号
};
class Teacher {
public:
void identity() { /* ... */ }
void teaching() { /* ... */ }
protected:
string _name = "张三";
int _age = 18;
string _title; // 职称
};
引入 Person 基类后,公共部分提取出来,子类只需关注特有逻辑:


