C 析構函式

2021-07-26 20:05:24 字數 789 閱讀 1522

析構函式:析構函式(destructor) 與

建構函式

相反,當物件結束其

生命週期

時(例如物件所在的函式已呼叫完畢),系統自動執行析構函式。析構函式往往用來做「清理善後」 的工作(例如在建立物件時用new開闢了一片記憶體空間,應在退出前在析構函式中用delete釋放)。

c++當中的析構函式格式如下:

class 《類名》

;《類名》::~《類名》()

;

當程式中沒有析構函式時,系統會自動生成以下析構函式:

《類名》::~《類名》(){},即不執行任何操作。

下面通過乙個例子來說明一下析構函式的作用:

#includeusing namespace std;

class t

//為了簡潔,函式體可以直接寫在定義的後面,此時函式為內聯函式

};int main()

;

析構函式與建構函式最主要大不同就是在於呼叫期不同,建構函式可以有引數可以過載!

特徵:

a、析構函式在類名(即建構函式名)加上字元~。

b、析構函式無引數無返回值。

c、乙個類有且只有乙個析構函式。若未顯示定義,系統會自動生成預設的析構函式。

d、物件生命週期結束時,c++編譯系統系統自動呼叫析構函式。

e、注意析構函式體內並不是刪除物件,而是做一些清理工作。

C 析構函式 虛析構函式

1.為什麼要定義虛析構函式?如果有乙個帶有虛函式功能的類,則它需要乙個虛析構函式,原因如下 1 如果乙個類有虛函式功能,它經常作為乙個基類使用 2 如果它是乙個基類,它的派生類經常使用new來分配 3 如果乙個派生類物件使用new來分配,並且通過乙個指向它的基類的指標來控制,那麼它經常通過乙個指向它...

C 析構函式和虛析構函式。

析構函式如果不是虛的話,基類的析構函式將不會被呼叫。多型時,也就是派生類被基類指標所指,或者被基類別名 虛析構函式,被呼叫時,其自身的析構函式和基類的析構函式都將會被呼叫。非虛的時候,不進行多型,只有基類的會被呼叫。純虛析構函式 定義的時候除了加 0 還需要給出函式的實現。因為當遞迴的呼叫析構函式時...

C 建構函式 析構函式 虛析構函式

一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...