同上一节一样,在派生类中,析构函数也无法被派生类吸收。
重点大家需要清楚派生类和基类的析构函数的调用顺序,析构函数的调用顺序与构造函数则完全相反,我们可以在派生类析构函数和基类析构函数中输出一条信息,观察调用顺序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /************************************** //Des:C++教程demo //Author:Huang //Copyright:www.dotcpp.com //Date:2017/11/15 **************************************/ #include<iostream> using namespace std; class Clock { private : int H; int M; int S; public : Clock() { cout<< "Clock's Constructor Called!" <<endl; } ~Clock() { cout<< "Clock's Destructor Called!" <<endl; } }; class AlarmClock: public Clock { private : int AH; int AM; public : AlarmClock() { cout<< "AlarmClock's Constructor Called!" <<endl; } ~AlarmClock() { cout<< "AlarmClock's Destructor Called!" <<endl; } }; int main() { AlarmClock A; return 0; } |
运行截图:

大家可以看到定义一个派生类AlarmClock会先产生基类,同时析构顺序却是相反。
构造函数调用顺序:基类->派生类银行从业考试合格要求
析构函数调用顺序:派生类->基类
请大家亲自上机实验。