C++ 三大属性之继承
作用
c++很重要的一个特征就是代码重用,而代码重用就是通过继承实现。
概念
子类是父类的一个子集,如下图关系
由图可知,院士是老师的子类,而基类的抽象程度最高,子类更加具体。
访问控制
取两者交集的较小者。
子类和父类的关系
- 子类就是特殊的父类
- 子类对象可以直接初始化父类对象
- 子类可以当做父类使用
- 子类拥有父类的成员变量和成员函数
构造和析构函数
构造函数执行顺序:子类对象在创建时会首先调用父类的构造函数,而后调用自己的构造函数,当父类的构造函数有参数时,需要在子类的初始化列表中显示调用。(设计原因:因为子类会用到父类的成员函数和成员变量,故而需要先初始化父类)
析构函数执行顺序:与构造函数相反,先调用子类后调用父类。(设计原因:先删除孩子节点而后一层层向上删除)
#include <iostream> using namespace std; class Person{ public: Person(){ cout << "Person的构造函数" << endl; } ~Person() { cout << "删除Person对象 " << endl; } private: int name; }; class Student:public Person{ public: Student(){ cout << "Student的构造函数" << endl; } ~Student() { cout << "删除Student对象 " << endl; } private: int name; string no; }; int main() { Student student; return 0; }
结果
Person的构造函数
Student的构造函数
删除Student对象
删除Person对象
析构函数执行时间:参考https://www.cnblogs.com/AntonioSu/p/12269474.html