詳解C 程式設計中的析構函式

2022-10-04 02:15:07 字數 727 閱讀 6061

c++析構函式

建立物件時系統會自動呼叫建構函式進行初始化工作,同樣,銷毀物件時系統也會自動呼叫乙個函式來進行清理工作(例如**建立物件時消耗的各種資源),這個函式被稱為析構函式。

析構函式(destructor)也是一種特殊的成員函式,沒有返回值,不需要使用者呼叫,而是在銷毀物件時自動執行。與建構函式不同的是,析構函式的名字是在類名前面加乙個」~「符號。

注意:析構函式沒有引數,不能被過載,因此乙個類只能有乙個析構函式。如果使用者沒有定義,那麼編譯器會自動生成。

析構函式舉例:

#include

using namespace std;

class student;

student::student(char *name1, int age1, float score1):name(name1), age(age1), score(score1){}

student::~student()

在呼叫fn函式時,先呼叫stud1的建構函式,再呼叫stud2的建構函式,在fn呼叫結束時,stud1是要釋放的(因為它是自動區域性物件),因此呼叫stud1的析構函式。而stud2 是靜態區域性物件,在呼叫結束時並不釋放,因此不呼叫stud2的析構函式。直到程式結束釋放stud2時,才呼叫stud2的析構函式。可以看到stud2是後呼叫建構函式的,但並不先呼叫其析構函式。原因是兩個物件的儲存類別不同、生命週期不同。

本文標題: 詳解c++程式設計中的析構函式

本文位址:

C 析構函式詳解

建立物件時系統會自動呼叫建構函式進行初始化工作,同樣,銷毀物件時系統也會自動呼叫乙個函式來進行清理工作,例如釋放分配的記憶體 關閉開啟的檔案等,這個函式就是析構函式。析構函式 destructor 也是一種特殊的成員函式,沒有返回值,不需要程式設計師顯式呼叫 程式設計師也沒法顯式呼叫 而是在銷毀物件...

C 析構函式詳解

析構函式 與建構函式功能相反,析構函式是完成物件的銷毀,區域性物件銷毀工作是由編譯器完成的。而物件在銷毀時會自動呼叫析構函式,完成類的一些資源清理工作。1 在下面這個類中,並沒有顯示定義析構函式,但是編輯器不會生成預設的析構函式,因為在這個類中沒有進行資源的管理,所以不需要析構函式。class da...

C 建構函式,析構函式詳解

目錄 上期了解c 類中有public protected private三種訪問許可權。肯定會有人疑惑,c 為什麼要設定這三個許可權呢 本期內容就是圍繞上面的問題展開說明 開始的文章就提到過,類是 oop 物件導向程式設計的基礎 那麼物件導向程式設計究竟是個什麼東東呢 百科是這樣解釋的 通俗的來說就...