目錄
析構函式 程式
可簡述為: 先構造的後析構, 後構造的先析構。
析構函式通常用於釋放在建構函式或在物件生命期內獲取的資源(如動態分配的記憶體) 。
析構函式的作用並不僅限於釋放資源方面, 它可以包含任意操作, 用來執行「物件即將被撤銷之前程式設計師所期待的任何操作」 。
如果類需要析構函式, 則該類幾乎必然需要定義自己的複製建構函式和賦值運算子過載, 這個規則稱為析構函式三法則(rule of
three) 。
#include#include#includeusing namespace std;
class cstring
{private:
/* data */
char *p;//儲存字串動態記憶體區
public:
cstring(const char *str);//單個引數建構函式
~cstring();//析構函式
void show(){
//顯示字串
cout<<"show:"《建構函式和析構函式的呼叫很像乙個棧的先進後出, 呼叫析構函式的次序正好與呼叫建構函式的次序相反。 最先被呼叫的建構函式,其對應的(同一物件中的) 析構函式最後被呼叫, 而最後被呼叫的建構函式, 其對應的析構函式最先被呼叫。
C 析構函式 虛析構函式
1.為什麼要定義虛析構函式?如果有乙個帶有虛函式功能的類,則它需要乙個虛析構函式,原因如下 1 如果乙個類有虛函式功能,它經常作為乙個基類使用 2 如果它是乙個基類,它的派生類經常使用new來分配 3 如果乙個派生類物件使用new來分配,並且通過乙個指向它的基類的指標來控制,那麼它經常通過乙個指向它...
C 析構函式和虛析構函式。
析構函式如果不是虛的話,基類的析構函式將不會被呼叫。多型時,也就是派生類被基類指標所指,或者被基類別名 虛析構函式,被呼叫時,其自身的析構函式和基類的析構函式都將會被呼叫。非虛的時候,不進行多型,只有基類的會被呼叫。純虛析構函式 定義的時候除了加 0 還需要給出函式的實現。因為當遞迴的呼叫析構函式時...
C 建構函式 析構函式 虛析構函式
一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...