析構函式的呼叫

2021-10-19 08:46:08 字數 1370 閱讀 5387

多個類變數的函式共用記憶體,變數單獨存放在不同的記憶體空間中,析構函式會釋放這些記憶體空間

#include

#include

using

namespace std;

class

person

person

(char

*p):

age(0)

,***

('m'

)person

(person &p)

person

(char

*name,

int age,

char ***)

void

register

(char

*name,

int age,

char ***)

;void

showme()

;~person()

;};void person::

register

(char

*name,

int age,

char ***)

void person::

showme()

class

singer

:public person };

singer::

singer()

:person()

singer::

singer

(char

*name,

int age,

char ***,

float salary)

void singer::

chagngedata

(char

*name,

int age,

char ***,

float salary)

void singer::

palymusic

(char

*ps)

void singer::

printdata()

int

main()

在main函式中的變數,會在main函式結束後呼叫析構函式,故觀察不到

但區域性變數可以觀察到析構函式的呼叫

int

main()

return0;

}

被繼承後,繼承person類的singer類呼叫析構函式時,也會呼叫person的析構函式

int

main()

return0;

}

析構函式的呼叫

看到這樣乙個例子 class b private int data public b cout default constructor destructed by parameter 5 destructed 那麼都有哪些情況會呼叫析構函式呢?1.當用 new運算子動態地建立了乙個物件 必須顯式用 ...

有關析構函式呼叫

如果在乙個函式中定義了乙個物件 它是自動區域性物件 當這個函式被呼叫結束時,物件應該釋放,在物件釋放前自動執行析構函式。static區域性物件在函式呼叫結束時物件並不釋放,因此也不呼叫析構函式,只在main函式結束或呼叫exit函式結束程式時,才呼叫static區域性物件的析構函式。如果定義了乙個全...

析構函式呼叫順序

設已經有a,b,c,d4個類的定義,程式中a,b,c,d析構函式呼叫順序為?c c voidmain 這道題主要考察的知識點是 全域性變數,靜態區域性變數,區域性變數空間的堆分配和棧分配 解題思路 其中全域性變數和靜態區域性變數時從靜態儲存區中劃分的空間 未初始化為bss,已初始化為資料段 二者的區...