C 析構函式

2021-10-25 14:37:12 字數 1220 閱讀 7034

析構函式,其實就是建構函式的相反操作,建構函式是建立物件時候,用來給物件的成員資料賦值的,而析構函式是用了清理物件的。

①析構函式就是位取反運算子+類名表示。

②建構函式可以有多個,而析構函式只能有乙個,不可過載,不能有引數。

③與建構函式相同,析構函式沒有返回值。如果沒有顯式寫出析構函式,編譯器會自動加上乙個預設的析構函式,如果寫了的話,就不會再加。

#include

using namespace std;

class point

;point:

:point

(double xx,

double yy):x

(xx),y

(yy)

point::~

point()

void point:

:get()

intmain()

①物件的生命週期結束。(比如在函式中的宣告 函式結束前會呼叫)

void

fun(

)int

main()

②如果物件是new出來的,用delete釋放空間時候會呼叫。不手動delete是不會呼叫析構函式的。

int

main()

③物件a是物件b的成員,物件b的析構函式被呼叫時候,物件a的析構函式也會被呼叫。

#include

using namespace std;

class point

;point:

:point

(double xx,

double yy):x

(xx),y

(yy)

point::~

point()

void point:

:get()

class line

;line:

:line()

line::~

line()

class test

;test:

:test()

test::~

test()

intmain()

析構函式不僅僅是用來清理物件釋放記憶體的,也可以是在析構函式中編寫在清理物件前需要做的一些工作。

C 析構函式 虛析構函式

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

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

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

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

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