1、建構函式初始化物件的非static資料成員,還可能做一些其他的工作;析構函式釋放物件使用的資源,並銷毀物件的非static資料成員。
2、析構函式是類的乙個成員函式,名字由波浪號接類名構成。沒有返回值,也不接受引數,因此不能被過載。
3、對於乙個給定類,只會有唯一乙個析構函式。
4、在乙個建構函式中,成員到初始化是在函式體執行之前完成的,且按照它們在類**現的順序進行初始化。在乙個析構函式中,首先執行函式體,然後銷毀成員,且成員按初始化順序的逆序銷毀。
5、什麼時候會呼叫析構函式?
6、當指向乙個物件的引用或者指標離開作用域時,析構函式不會執行。
7、析構函式本身並不直接銷毀成員。成員是在析構函式體之後隱含的析構階段中被銷毀的。在整個物件銷毀過程中,析構函式體是作為成員銷毀步驟之外的另一部分而進行的。
c primer 3 13 析構函式
p points to default constructed object sales item p new sales item exit local scope destructor called on item 變數 如 item 在超出作用域時應該自動撤銷。因此,當遇到右花括號時,將執行 ...
C Primer複製控制 13 3 析構函式
如果類需要析構函式,則它也需要賦值操作符和複製建構函式,這是乙個有用的經驗法則。這個規則常稱為 三法則,指的是如果需要析構函式,則需要所有這三個複製控制成員。複製建構函式或賦值操作符不同,編譯器總是會為我們合成乙個析構函式。合成析構函式按物件建立時的逆序撤銷每個非static 成員,因此,它按成員在...
C 析構函式 虛析構函式
1.為什麼要定義虛析構函式?如果有乙個帶有虛函式功能的類,則它需要乙個虛析構函式,原因如下 1 如果乙個類有虛函式功能,它經常作為乙個基類使用 2 如果它是乙個基類,它的派生類經常使用new來分配 3 如果乙個派生類物件使用new來分配,並且通過乙個指向它的基類的指標來控制,那麼它經常通過乙個指向它...