继承是C++里实现代码复用的主要手段,也是面向对象设计的根基。一个类可以从另一个类那里拿到已经写好的属性和方法,然后再添上自己的新功能。这样既能避免重复造轮子,又能灵活扩展。
继承的概念
代码复用的需求很常见:比如学生和老师都有姓名、年龄,也都会吃饭、睡觉。如果没有继承,就得为每种角色分别定义这些相同的东西。有了继承,可以先定义一个 Person 基类,然后让 Student 和 Teacher 去继承它,各自扩展专属的学号、教工号之类的属性和行为。
这种'is-a'关系清晰的场景,正是继承最趁手的地方。
基本语法
先看最简单的写法:
class 派生类名 : 继承方式 基类名 {
// 派生类自己的成员
};
继承方式决定了基类成员在派生类中的访问权限,有三种:public、protected、private。一个最基本的例子:
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
string name;
int age;
void eat() { cout << name << " 正在吃饭" << endl; }
void sleep() { cout << name << " 正在睡觉" << endl; }
};
class Student : public Person {
public:
int studentID;
void study() {
cout << name << " 正在学习,学号:" << studentID << endl;
}
};
{
Student s;
s.name = ;
s.age = ;
s.studentID = ;
s.();
s.();
s.();
;
}


