析構函式(2019 8 13)

2021-09-26 03:55:23 字數 941 閱讀 4571

與建構函式相類似的,析構函式也是一種特殊的成員函式,也被宣告為公有成員。不同的是,析構函式作用時釋放分配給物件的記憶體空間,並做一些善後工作。析構函式在宣告定義和使用的時候需要注意如下的事項:

(1)析構函式的名字必須與類名相同,但在名字的前面要加上波浪號(「~」)

(2)析構函式沒有引數,沒有返回值,不能過載,在乙個類中只能有乙個析構函式。

(3)當撤消物件時,系統會自動呼叫析構函式完成空間的釋放和善後工作。

在使用析構函式中,需要注意如下的幾個問題:

(1)每個類必須有乙個析構函式,若沒有顯式地定義,則系統會自動生成乙個預設析構函式,它是乙個空函式。

類名∷預設析構函式名()
例如,有以下程式:

#include //定義類sample

using namespace std;

class sample

//建構函式1

sample(int i) //建構函式2

~sample() //析構函式

對於大多數類而言,預設的析構函式就能滿足要求,但如果物件在完成操作前需要做內部處理,則應顯式地定義析構函式。

建構函式和析構函式的常見用法是,在建構函式中用new運算子為物件分配空間,在析構函式中用delete運算子釋放空間。

#include using namespace std;

#include class complex

;complex::complex(double r, double i) //定義建構函式

complex::~complex() //定義析構函式

double complex::abscomplex()

int main()

C 析構函式 虛析構函式

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

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

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

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

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