C 類建構函式初始化列表

2021-04-22 11:55:05 字數 396 閱讀 1675

建構函式初始化列表以乙個冒號開始,接著是以逗號分隔的資料成員列表,每個資料成員後面跟乙個放在括號中的初始化式。例如:

你可能以為上面的**將會首先做m_y=i,然後做m_x=m_y,最後它們有相同的值。但是編譯器先初始化m_x,然後是m_y,,因為它們是按這樣的順序宣告的。結果是m_x將有乙個不可**的值。有兩種方法避免它,乙個是總是按照你希望它們被初始化的順序宣告成員,第二個是,如果你決定使用初始化列表,總是按照它們宣告的順序羅列這些成員。這將有助於消除混淆。

1.基類沒有預設建構函式.

2.物件成員沒有預設建構函式.

3.常成員.

4. 引用.

因為這些沒有辦法使用預設建構函式,就要使用建構函式初始化列表,而其他的類中的成員則可以按需要而選擇是否在初始化列表中顯式初始化。

C 類建構函式初始化列表

在使用c 程式設計的過程當中,常常需要對類成員進行初始化,通常的方法有兩種 第一種方法 1.cmyclass csomeclass 2.第二種方法 1.csomeclass csomeclass x 0 y 1 2.本文將要 這兩種方法的異同以及如何使用這兩種方法。從技術上說,第二種方法比較好,但是...

C 類建構函式初始化列表

建構函式初始化列表以乙個冒號開始,接著是以逗號分隔的資料成員列表,每個資料成員後面跟乙個放在括號中的初始化式。例如 cexample 建構函式內部賦值 cexample 上面的例子中兩個建構函式的結果是一樣的。上面的建構函式 使用初始化列表的建構函式 顯式的初始化類的成員 而沒使用初始化列表的建構函...

C 類建構函式初始化列表

建構函式初始化列表以乙個冒號開始,接著是以逗號分隔的資料成員列表,每個資料成員後面跟乙個放在括號中的初始化式。例如 cexample 建構函式內部賦值 cexample 上面的例子中兩個建構函式的結果是一樣的。上面的建構函式 使用初始化列表的建構函式 顯式的初始化類的成員 而沒使用初始化列表的建構函...