继承
继承允许我们依据一个类来定义另一个类。
已有的类称为基类,新建的类称为派生类。
class <派生类名>: <继承方式> <基类名>
// 具体的:
class A // 基类
{
...
};
class B: public A // 公有继承(派生)
{
...
};
class C: private A // 私有继承(派生)
{
...
};
class D: protected A // 保护继承(派生)
{
...
};
三种访问权限在继承中的特点
继承方式 | 基类成员访问属性 | 在派生类中的访问属性 |
public | public | public |
protected | protected | |
private | private | |
protected | public | protected |
protected | protected | |
private | private | |
private | public | private |
protected | private | |
private | private |
1.private 成员只能被本类成员(类内)和友元访问,不能被派生类访问;
2.protected 成员可以被派生类访问。
一个派生类继承了所有的基类方法,但下列情况除外:
- 基类的构造函数、析构函数和拷贝构造函数。
- 基类的重载运算符。
- 基类的友元函数。
多继承
多继承即一个子类可以有多个父类,它继承了多个父类的特性。
C++ 类可以从多个类继承成员
class <派生类名>: <继承方式1> <基类名1>, <继承方式2> <基类名2>, ...
{
...
};