#include using namespace std;
class a
virtual void func()
// 第七步:執行類a的析構函式,輸出"析構函式a"
~a()
virtual void fund()
};class b : public a
// 第四步:執行主函式裡的c.fun(),輸出"開始...",並呼叫func();
// 由於fun()不是建構函式和析構函式,且func()為虛函式
// 所以最終結果輸出"開始...類c"
void fun()
// 第六步:執行類b的析構函式,呼叫fund()函式;
// 由於是在析構函式裡,且fund()為虛函式,所以執行類a裡的fund();
// 輸出清除a
~b()
};class c : public b
void func()
// 第五步:執行類c的析構函式,輸出"清除c"
~c()
void fund()
};int main()
;
C 建構函式 析構函式 虛析構函式
一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...
建構函式 析構函式 虛析構函式
說析構函式之前,先說下建構函式。建構函式用來完成對物件的一系列初始化操作,主要作用有 1.給建立的物件建立乙個識別符號 2.為物件資料成員開闢記憶體空間 3.完成物件資料成員的初始化 當並未顯示的定義建構函式時,會生成乙個預設的建構函式,預設建構函式不能完成物件資料成員的初始化,只能給物件建立一識別...
C 中的建構函式 虛函式 析構函式
一 建構函式 初始化函式應該是一種特殊的成員函式,能夠在建立物件時被自動呼叫。這就是建構函式。建構函式的名字和類名字相同,它沒有返回值型別 注意 不是void型別 建構函式的引數通常為資料成員提供初始值。建構函式可以過載,在建立物件時,編譯器會根據初始值的型別和個數來呼叫相應的建構函式,因而建構函式...