和建構函式類似,析構函式也是不能被繼承的程式設計客棧。
建立派生類物件時,建構函式的呼叫順序和繼承順序相同,先執行基類建構函式,然後再執行派生類的建構函式。但是對於析構函式,呼叫順序恰好相反,即先執行派生類的析構函式,然後再執行基類的析構函式。
請看下面的例子:
#include
using namespace std;
class a;
class b: public a{
public:
b(){cout程式設計客棧
執行結果:
a constructor
b constructor
c constructor
c destructor
b destructor
a destructor
從執行結果可以很明顯地看出來,建構函式和析構函式的執行順序是相反的。
需要注意的是,乙個類只能有乙個析構函式,呼叫時不會出現二義性,所以析構函式不需要顯式地呼叫。
本文標題: 簡單介紹c++程式設計中派生類的析構函式
本文位址:
C 中派生類的構造 析構的呼叫順序
建立 派生類的物件時,執行 s3 派生類的建構函式之前 s1 呼叫 基類的建構函式 初始化派生類物件中從基類繼承的成員 s2 呼叫 成員物件類的建構函式 初始化派生類物件中成員物件 執行完s1 派生類的析構函式之後 s2 呼叫 成員物件類的析構函式 s3 呼叫 基類的析構函式 析構函式的呼叫順序與建...
派生類的析構函式
include using namespace std class base base int i,int j base void print private int b1,b2 base base int i,int j base base class derived public base de...
繼承與派生 派生類的析構函式
派生類的析構函式也是在派生類物件釋放的時候進行清理工作的。前面說過,派生類無法繼承基類的析構函式,所以如果需要的話就要自己定義析構函式。派生類析構函式的定義方式與 一般類的析構函式 是一樣的,也是沒有返回型別,沒有引數,所以比建構函式需要注意的東西少多了。派生類的析構函式一般只需要在其函式體中清理新...