在C++面向对象编程里,继承与派生是构建类之间关系的重要机制。继承表示一个新的类可以获取另一个已有类的成员,而派生则强调从已有类产生新类的过程。通过它们,我们能够以较低成本扩展功能。

一、基本概念
被继承的类称为基类或父类,继承产生的新类称为派生类或子类。派生类拥有基类的成员变量和成员函数,还可以增加自己的内容。继承与派生描述的是同一种关系的两个角度。
二、语法形式
C++中使用冒号来声明继承方式,常见有 public、protected 和 private 三种。下面给出一个简单示例:
#include <iostream>
using namespace std;
// 基类
class Animal {
public:
void eat() {
cout << "动物吃东西" << endl;
}
};
// 派生类,公有继承
class Dog : public Animal {
public:
void bark() {
cout << "狗叫" << endl;
}
};
int main() {
Dog d;
d.eat(); // 调用基类方法
d.bark(); // 调用派生类方法
return 0;
}
三、继承方式对比
不同继承方式会影响基类成员在派生类中的访问权限,具体如下表:
| 基类成员 | public继承 | protected继承 | private继承 |
|---|---|---|---|
| public成员 | public | protected | private |
| protected成员 | protected | protected | private |
| private成员 | 不可访问 | 不可访问 | 不可访问 |
四、构造与析构顺序
创建派生类对象时,先调用基类构造函数,再调用派生类构造函数;销毁时顺序相反。若基类没有默认构造,需在派生类初始化列表中显式传参。
class Base {
public:
Base(int x) { /* 初始化 */ }
};
class Derived : public Base {
public:
Derived() : Base(10) {} // 显式调用基类构造
};
五、总结
继承与派生是C++实现代码复用和多态的基础。合理设计类层次,可以让程序结构清晰、易于扩展。实际开发中应优先使用 public 继承表达“是一个”的关系,并控制成员访问权限。