19 lines
963 B
Markdown
19 lines
963 B
Markdown
# 继承
|
|
|
|
类的继承使用`class 类名: 访问控制标识 基类名称 {}`的格式声明。其中访问控制标识可以取`protected`、`private`、`public`,用于控制基类中成员在子类中的访问级别。访问控制遵循以下规律。
|
|
|
|
- 使用`public`,基类中的成员将保持原有的访问级别。
|
|
- 使用`protected`,基类中的`public`和`protected`成员都将变为`protected`级别。
|
|
- 使用`private`,基类中的所有成员都会变为`private`。
|
|
|
|
子类在实例化时,必须先调用基类的构造函数创建基类对象,这就需要使用子类的构造函数采用特殊写法。例如有以下两个类`BasePerson`和`Child`。
|
|
|
|
```c++
|
|
Child::Child(std::string name, int age)
|
|
:BasePerson(name, age) {
|
|
// Child的构造函数体
|
|
}
|
|
```
|
|
|
|
子类的构造函数的参数列表后的`:`后,即为调用基类的构造函数位置,可以将构造函数收到的参数传递给基类的构造函数。
|