12 析構函式

2021-08-08 23:05:08 字數 988 閱讀 4443

析構函式也是一種特殊的成員函式,它執行與建構函式相反的操作。建構函式用於為類的物件分配空間,析構函式用於撤銷物件時的一些清理任務,如釋放分配給物件的記憶體空間

類內部:~類名

(){}

類外部:類名::~類名

(){}

需要在類內部宣告

1、析構函式與建構函式名字相同,但它前面必須加波浪號(~)。

2、析構函式既可以在類內部定義,也可以在類外部定義。

3、析構函式沒有引數,沒有返回值,不能過載。也就是說,乙個類中只能有乙個析構函式,原因是不能釋放同一塊記憶體空間兩次。

4、當撤銷物件時,系統會自動呼叫析構函式,無需呼叫。

5、具有static屬性的物件和全域性物件只在

main

函式結束時,其生存週期才結束,這時才呼叫析構函式。

6、析構函式的作用並不是刪除物件。

7、若乙個物件是使用new運算子動態建立的,在使用

delete1

運算子釋放它時,

delete

會自動呼叫析構函式。

8、若沒有定義析構函式,系統會自動生成乙個析構函式,這個析構函式不做任何事情。

C 析構函式 虛析構函式

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

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

說析構函式之前,先說下建構函式。建構函式用來完成對物件的一系列初始化操作,主要作用有 1.給建立的物件建立乙個識別符號 2.為物件資料成員開闢記憶體空間 3.完成物件資料成員的初始化 當並未顯示的定義建構函式時,會生成乙個預設的建構函式,預設建構函式不能完成物件資料成員的初始化,只能給物件建立一識別...

C 虛函式 12 純虛析構函式

c 中析構函式能否為純虛函式?可以!c 中定義乙個純虛析構函式是合法的,並且最重要的一點是如果某個類包含純虛析構函式,則類必須給此函式定義函式體。看起來這種現象很奇怪,純虛函式怎麼會需要定義函式體呢?但是,因為析構函式的呼叫順序總是與構造順序相反,這就意味著派生類的析構總是先被呼叫,然後再呼叫基類的...