深入探索建構函式

2021-08-03 09:51:31 字數 474 閱讀 1879

大致分為以下幾類:

( 1 )全預設引數初始化, 不用傳參。

(2)半預設引數初始化, 只需傳部分引數。

(3)無缺省引數初始化,定義多少個成員變數,傳多少個引數。

(4)使用初始化列表初始化,此類初始化更加高效,建議初始化的順序與宣告的順序相同。

首先定義乙個日期類如下:

class date

//半預設引數

//無缺省引數

//初始化列表初始化

private:

int _year;

int _month;

int _day;

};void testdate()

因為使用初始化列表相當於在宣告變數的時候就初始化了,省去了傳參過程中的開銷,因此會更加的高效,而且使用初始化列表進行初始化的順序與宣告變數的順序是相同的,因此建議初始化列表初始順序與宣告順序一致。

深入探索預設建構函式

問題 傳統認識為 如果我們自己在類中沒有定義任何建構函式,那麼編譯器就會為我們隱式自動生成乙個預設的建構函式,我們稱這種建構函式為 合成的預設建構函式 事實的真相果真如此嗎?結論 合成預設建構函式 只有在必要的時候,編譯器才會為我們自動合成出來,而不是必然為我們合成出來。那到底什麼時候是必要的呢?演...

初始化列表(深入探索建構函式)

一 類的成員變數有兩種初始化方式 一是建構函式體內進行賦值 二是初始化列表進行初始化。初始化列表以乙個冒號開始,以逗號分隔資料列表,每乙個元素要初始化的值都在括號中。class date private int year int month int day 二 初始化列表更高效 嘗試執行以下 在上面...

深入探索C 物件模型 七 構造

三個重要函式 建構函式,析構函式,拷貝建構函式。1.無繼承情況下的物件構造。當類中存在虛函式時,編譯器會對該類產生膨脹作用,例如如下類 cpp view plain copy class point virtual float z protected float x,y a.我們所定義的建構函式中,...