C 顯示呼叫建構函式和析構函式

2021-07-25 08:47:12 字數 714 閱讀 8252

建構函式和析構函式可不可以顯示呼叫:

class a

~a()

};

void main()

此時的輸出結果是:

a constructor

a constructor  //顯示呼叫建構函式的結果。

a destrucotr   //顯示呼叫析構函式的結果,此時物件並沒有銷毀。

a destructor   //物件銷毀時自動呼叫析構函式。

總結:顯示呼叫建構函式和析構函式就想呼叫一般的函式一樣,並不意味著建立或銷毀物件。但是注意,如果建構函式中動態分配了空間,則顯示呼叫建構函式會出現記憶體洩露;如果析構函式中釋放動態分配的空間,則會出現多次釋放統一記憶體,會出現嚴重錯誤。

**:

C 顯示呼叫建構函式和析構函式

類在new的時候其實做了兩件事情 1 呼叫malloc分配所需的記憶體 實際上是呼叫operator new 2 呼叫建構函式 類在delete的時候其實也做了兩件事 1 呼叫析構函式 2 呼叫free釋放記憶體 實際上是呼叫operator delete 直接通過 類名 建構函式或析構函式clas...

C 建構函式析構函式呼叫順序

在使用建構函式和析構函式時,需要特別注意對它們的呼叫時間和呼叫順序。在一般情況下,呼叫析構函式的次序正好與呼叫建構函式的次序相反 最先被呼叫的建構函式,其對應的 同一物件中的 析構函式最後被呼叫,而最後被呼叫的建構函式,其對應的析構函式最先被呼叫。簡單來說,其建構函式的順序就一句話 基類建構函式 成...

C 建構函式 析構函式和拷貝構造的呼叫

建構函式是在建立給定型別的物件時執行的類方法。建構函式具有與類相同的名稱,它通常初始化新物件的資料成員。析構函式 destructor 與建構函式相反,當物件結束其生命週期,如物件所在的函式已呼叫完畢時,系統自動執行析構函式。析構函式往往用來做 清理善後 的工作。拷貝建構函式是一種特殊的建構函式,其...