組合類建構函式 析構函式詳解

2021-06-26 09:58:43 字數 840 閱讀 5661

組合類:

組合類的概念就是:指在乙個類的資料成員中含有乙個或多個類的物件,擁有這樣結構的類就叫組合類。這種以資料成員身份出現的類物件就叫子物件。

繼承和組合都可以實現乙個類重用另乙個類的行為功能,那麼如何選擇用組合類還是用繼承?

當b與a屬於同一類的範疇,並且b"is a kind of"a,一般應該把b設計為「繼承」a;而如果b與a不屬於同一類範疇,但是b"is a part of"a,並且a需要使用b的功能,這種情況應該設計為由b「組合出」a。

組合類中的建構函式

當乙個類既是組合類又是派生類,它在建立物件時,系統對建構函式的呼叫順序有相應的規定:

最先呼叫基類的建構函式,初始化基類的資料成員;

然後呼叫子物件所在類的建構函式,初始化子物件的資料成員;

最後呼叫本類的建構函式,初始化新增資料成員。

一般初始化列表中的引數也以此順序來逐一提供。

組合類中的析構函式

當物件消亡時,系統對析構函式的呼叫順序為:

最先呼叫本類的析構函式;

然後呼叫子物件所在類的析構函式;

最後呼叫基類的析構函式。

程式示例:

#includeusing namespace std;

class date

;class people

;//data類實現

date::date()

date::date(int y,int m,int d)

void date::setdate(int y,int m,int d)

bool date::isleapyear()

void date::print()

{ cout<

類建構函式 析構函式

下面的例項有助於更好地理解建構函式的概念 include using namespace std class line 成員函式定義,包括建構函式 line line void void line setlength double len double line getlength void 程式的...

類建構函式,類析構函式

類建構函式 the class constructor 是乙個特殊的類成員函式,當我們建立這個類的新物件時,會被執行。乙個建構函式將被確定與類名相同的名字,沒有任何返回值,包括void。建構函式對於給某些類成員變數設定初始值非常有用。例子 include using namespace std cl...

類的建構函式和析構函式詳解

1.建構函式定義 類的建構函式是類的一種特殊的成員函式,它會在每次建立類的新物件時執行。建構函式的名稱與類的名稱是完全相同的,並且不會返回任何型別,也不會返回 void。建構函式可用於為某些成員變數設定初始值。建構函式主要用於為物件分配空間,進行初始化。2.性質 1 建構函式的名字必須與類名相同 2...