C 中類的建構函式初始值列表

2021-10-10 09:59:42 字數 729 閱讀 2063

c++中類的建構函式初始值列表可以對類的成員進行初始化。

class myclass

};

其中,類myclass的建構函式中包含了初始值列表,對成員變數i進行初始化。

除了通過建構函式初始值列表來初始化成員變數外,還可以通過建構函式的函式體來初始化成員變數。

class myclass

};

此時,成員變數i的初始值是1。

當類包含有常量成員變數或者引用成員變數時

class myclass;
如果類沒有定義建構函式,則使用預設的建構函式來建立物件

myclass mc;
此時,編譯器會報錯,報錯資訊為「error c2280: 「myclass::myclass(void)」: 嘗試引用已刪除的函式」。因此,需要編寫myclass類的建構函式對常量成員變數和引用成員變數進行初始化。

在myclass類的建構函式體內對常量或引用成員變數進行初始化

myclass()

此時,編譯器會報錯,報錯資訊為「 error c2789: 「myclass::ci」: 必須初始化常量限定型別的物件」。

myclass():i(1),ci(2),ri(i)

此時,程式可以成功編譯。

類建構函式初始值列表

類的成員可以包括函式和成員變數,如果成員變數沒有顯示的初始化時,則應該最好對他們進行顯示的初始化,而不能靠他們的預設初始化,因為有些變數沒有預設初始值的。現在類成員初始化工作都是靠類的建構函式來完成,類中提供預設建構函式來提供初始化類成員功能,初始化類成員一般有兩種方式,即類成員定義時賦初始值和使用...

由C 建構函式初始值列表想到的

大家在編寫c 的時候,總是會遇到下面這個問題,什麼時候為建構函式提供初始值列表 當然,推薦做法都是以初始值列表代替建構函式體內賦值 資料成員初始化動作是在建構函式體之前的,相對應的,析構函式的資料成員銷毀動作是在析構函式體之後的。所常見的必須提供初始值列表的情況有,前面兩個比較好理解,const和引...

C 中類初始值列表與類內初始化

類的建構函式的作用是對其成員進行初始化。而在建構函式中可以使用初始值列表為新建立的物件的成員進行賦值。在類的建構函式名之後緊跟著冒號,冒號後面是要初始化的成員名,之後是圓括號或者花括號括起來的初始值。這樣的結構就是建構函式的初始值列表,如下所示。class a int a int b 其中,自定義類...