C 析構函式

2021-07-26 23:56:14 字數 1007 閱讀 4011

析構函式

觸發條件:當物件被銷毀時,會自動呼叫析構函式,釋放資源。

定義格式:~類名()(沒有返回值,不允許加任何引數,故不能過載)

建構函式在物件例項化時自動呼叫,

析構函式在物件銷毀時自動呼叫。

建構函式沒有返回值。

拷貝建構函式沒有返回值、不能過載。

析構函式在棧、堆中都能被呼叫,但是在堆中不會自動呼叫,必須手動釋放記憶體,否則會造成記憶體洩漏

資料成員

成員函式;析構函式}}

成員函式

物件例項化

teacher.h

#include#includeusing namespace std;

class teacher

;

teacher.cpp

#include"teacher.h"

using namespace std;

/*定義乙個teacher類:

1.自定義析構函式

2.普通方法例項化的物件,在銷毀物件時是否自動呼叫析構函式

3.通過拷貝建構函式例項化物件,在銷毀物件時是否自動呼叫析構函式

資料成員:

名字性別

年齡成員函式:

資料成員的封裝函式

授課teach

另: 定義可以帶最多學生的個數,此為常量

*/teacher::teacher(string _name,int _age,int _m):m_strname("jim"),m_iage(10),m_imax(100)

{ cout<

C 析構函式 虛析構函式

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

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

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

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

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