多個類變數的函式共用記憶體,變數單獨存放在不同的記憶體空間中,析構函式會釋放這些記憶體空間
#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,已初始化為資料段 二者的區...