C 類成員建構函式和析構函式順序示例詳細講解

2021-06-29 06:46:54 字數 1653 閱讀 2561

這篇文章主要介紹了c++類成員構造和析構順序示例,看了這個例子大家就可以明白c++構造析構的奧秘

物件並不是突然建立起來的,建立物件必須時必須同時建立父類以及包含於其中的物件。c++遵循如下的建立順序:

(1)如果某個類具體基類,執行基類的預設建構函式。

(2)類的非靜態資料成員,按照宣告的順序建立。

(3)執行該類的建構函式。

即構造類時,會先構造其父類,然後建立類成員,最後呼叫本身的建構函式。

下面看乙個例子吧

複製**

**如下:

分析一下吧  首先定義了3個類 a b c,其中a繼承自b ,在main函式裡面構造a ,因為a是繼承b ,所以會先構造b,然後b類又有乙個成員c類,所以c類是最先構造的,然後是b ,最後才是a。

在看乙個例子,就是上面的該了一下:

複製**

**如下:

class c

protected:

private:

}; class b 

protected:

private:

};class a : public b

protected:

c c;

private:

};int main()

沒有改變多少,只是在a新增了c成員,而b去掉了。

同樣是在main裡面構造a ,a繼承自b,所以先構造b,然後構造a本身的資料成員c,最後才呼叫的a本身的建構函式。。

這裡大家應該明白構造的細節了吧 。。

接下來看析構的順序:

(1)呼叫類的析構函式。

(2)銷毀資料成員,與建立的順序相反。

(3)如果有父類,呼叫父類的析構函式。

也看乙個例子吧:

複製**

**如下:

其過程是,在main函式結束時,會銷毀a,就會先呼叫a的析構函式,先後銷毀a的資料成員c,最後銷毀a的父類b。其實就是跟建立時的順序反了過來。

好了,到這裡相信大家已經明白構造析構的奧秘了吧!

C 建構函式 析構函式順序

1 輸入以下程式,分析執行結果。2 修改上面的4個類,新增析構函式,在析構函式中輸出各私有資料成員的值。並分析結果。實驗分析以及心得體會 主要是類的多繼承性,在繼承了多個基類之後,派生類物件呼叫的建構函式和析構函式的順序,以及在派生關係中同名函式的隱藏關係,根據實驗結果可以發現派生類物件在呼叫建構函...

C 類建構函式 析構函式

類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。下面的例項有助於更好地理解建構函式的概念 include using namespace std class...

C 類建構函式 析構函式

類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。下面的例項有助於更好地理解建構函式的概念 include using namespace std class...