物件的構造和析構過程

2021-06-18 08:27:06 字數 1034 閱讀 1115

物件的構造和析構過程不太清晰,特意做個筆記。

定義value類:

class value

~value()

value& operator = (int nval)

void dump()

protected:

int m_nval;

};定義乙個base類:

class base

virtual ~base()

virtual void init()

virtual void release()

virtual void dump()

private:

//派生出乙個derive類

class derive:public base

~derive()

virtual void init()

virtual void release()

virtual void dump()

protected:

static value m_val;  //宣告乙個靜態成員變數

private:

//靜態成員變數的定義

value derive::m_val = 0;

void destroyobj(base* pob)

int main()

derive *pob = new derive;

destroyobj(pob);

return 0;

程式執行結果:

結果分析: 派生類的物件在呼叫自身的建構函式前,要先執行基類的預設建構函式,然後才返回來執行該派生類的建構函式。

物件析構時:先執行該派生類的析構函式,然後再執行基類的析構函式。

構造和析構步驟可以表示為:

1.   基類建構函式

2.自身建構函式

3.自身析構函式  

4.  基類析構函式         

C 構造過程和析構過程

1 c 構造和析構的過程,類似於穿衣 的過程。穿衣是 先穿內衣,再穿外套。是 先脫外套,再脫內衣。c 構造過程 首先呼叫父類構造方法,再呼叫子類構造方法。c 析構過程 首先呼叫子類析構方法,再呼叫父類析構方法。2 子類不能繼承父類的構造方法和析構方法,除此之外,其他的成員都能繼承,包括父類的priv...

C 多個物件構造 析構 構造和析構的順序

include 多個物件構造和析構 1 當類中有成員變數是其它類的物件時,首先呼叫成員變數的建構函式,呼叫順序與宣告順序相同 之後呼叫自身類的建構函式 2 析構函式的呼叫順序與對應的構造函式呼叫順序相反 2 類成員中若有const修飾,必須在物件初始化的時候,給const int n 賦值 當類成員...

C 物件的構造和析構

一 建構函式 1 宣告 1 c 中的類可以定義與類名相同的特殊成員函式,這種與類名相同的成員函式叫做建構函式 語法 classname 2 建構函式在定義時可以有引數 3 沒有任何返回型別的宣告。2 呼叫 自動呼叫 一般情況下c 編譯器會自動呼叫建構函式 手動呼叫 在一些情況下則需要手工呼叫建構函式...