成員初始化列表

2021-07-03 20:24:16 字數 618 閱讀 8569

1、對於const資料成員,必須在執行到建構函式體之前,即建立物件時進行初始經。

2、成員初始經列表由逗號分隔的初始化列表組成(前面帶冒號)。它位於引數列表的右括號之後、函式體左括號之前。

3、初值可以是常量或建構函式的引數列表中的引數。這種方法並不限於初始化常量。

例如下**:

queue

::queue(int qs) : qsize(qs), front(null), rear(null), items(0)

4、只有建構函式可以使用這種初始化列表語法。對於const類成員,必須使用這種語法。另外,對於被宣告為引用的類成員,也必須使用這種語法。

這是因為引用和cosnt資料類似,只能在被建立時進行初始經。對於簡單資料成員使用成員初始化列表和在函式體中使用賦值沒有什麼區別。

5、對於本身就是類物件的成員來說,使用成員初始化列表效率更高。

6、從概念上說,這些初始化工作是在物件建立時完成的。此時還未執行括號中的任何**。

7、不能將成員初始化列表語法用於建構函式之外的其他類方法。

8、必須用這種格式來初始化非靜態const資料成員

9、必須用這種格式來初始化引用資料成員。

成員初始化列表

類物件的構造順序是這樣的 1.分配記憶體,呼叫建構函式時,隱式 顯示的初始化各資料成員 初始化階段可以是顯式的或隱式的,取決於是否存在成員初始化表。隱式初始化階段按照宣告的順序依次呼叫所有基類的預設建構函式,然後是所有成員類物件的預設建構函式。2.進入建構函式後在建構函式中執行一般計算 計算階段由建...

成員初始化列表

任乙個物件的建立都要呼叫建構函式,而在建構函式中一般要給物件屬性賦值。成員初始化列表 member initialize list 是建構函式中特有的語法,用以簡化對物件屬性的賦值。其用法如下 class myclass 以上 相當於 class myclass 用成員初始化列表的語法來表述很顯然 ...

成員初始化列表

從概念上講,可以認為建構函式分兩個階段執行 1 初始化階段 2 普通的計算階段。計算階段由建構函式函式體中的所有語句組成。不管成員是否在建構函式初始化列表中顯式初始化,類型別的資料成員總是在初始化階段初始化。初始化發生在計算階段開始之前。在建構函式初始化列表中沒有顯式提及的每個成員,使用與初始化變數...