子類的析構順序

2021-08-13 04:43:53 字數 493 閱讀 2357

派生類的析構函式的功能是在該物件消亡之前進行一些必要的清理工作,析構函式沒有型別,也沒有引數。

析構函式的執行順序與建構函式相反,無需指明析構關係,因為析構函式只有一種,無過載,無默參

析構順序:子類->成員->基類

#include "stdafx.h"

#include using namespace std;

class a

~a() };

class base

~base()

private:

char* p;

};class derive:public base

~derive()

private:

a a;

char* q;

};int _tmain(int argc, _tchar* argv)

學習子類的構造和析構順序

1 建構函式不能是虛函式 2 當析構函式不是虛函式時 父指標子物件時 構造是父 子,析構是父 3 當析構函式不是虛函式時 子指標子物件時 構造是父 子,析構是子 父 4 當析構函式是虛函式時 父指標子物件時 構造是父 子,析構是子 父 5 構造和析構函式中的虛函式都不能觸發多型行為。1 includ...

C 子類呼叫父類構造和析構函式的順序

include using namespace std class a class b public a int main 列印的結果是 construct a a construct b b destruct a a 一般情況下構造函式呼叫父類 子類 析構函式呼叫子類 父類 比如這麼寫 b a n...

析構函式的呼叫順序

析構函式做最後的 清場工作 一般當派生類物件從記憶體中撤銷時,先呼叫派生類的析構函式,再呼叫基類析構函式 但,若用new建立了臨時物件,在用delete撤銷物件是,系統會只執行基類的析構函式,而不執行派生類的析構函式。如果將基類的析構函式宣告為虛函式,由基類所有派生類的析構函式自動成為虛函式 即使析...