C 類成員和資料成員初始化總結

2021-09-10 07:26:14 字數 2207 閱讀 1913

c++為類中提供類成員的初始化列表。

類物件的構造順序是這樣的:

1.分配記憶體,呼叫建構函式時,隱式/顯示的初始化各資料成員

2.進入建構函式後在建構函式中執行一般計算

1.類裡面的任何成員變數在定義時是不能初始化的。

2.一般的資料成員可以在建構函式中初始化。

3.const資料成員必須在建構函式的初始化列表中初始化。

4.static要在類的定義外面初始化。   

5.陣列成員是不能在初始化列表裡初始化的。

6.不能給陣列指定明顯的初始化。

這6條一起,說明了乙個問題:c++裡面是不能定義常量陣列的!因為3和5的矛盾。這個事情似乎說不過去啊?沒有辦法,我只好轉而求助於靜態資料成員或者使用列舉。

到此,我的問題解決。但是我還想趁機複習一下c++類的初始化:

1.初始化列表:

demo::demo() : x(3), y(5){}

2.類外初始化:int csomeclass::myvar=3;

3.const常量定義必須初始化,c++類裡面使用初始化列表;

4.c++類不能定義常量陣列。

在c++類中,必須做如下事情:

1.必須對任何const或引用型別成員以及沒有預設建構函式的類 型別 的任何成員 顯示地使用初始化列表進行初始化;

2.類成員在定義時是不能被初始化的;

3.類的成員初始化順序與成員變數在建構函式中的位置選後順序無關,與成員變數在類中定義的先後順序有關。

例如 : 

class

demo  }

這個初始化列表的順序是錯誤的,首先在宣告成員變數的時候first要先於second,所以初始化順序是先初始化first,然後再second。但是初始化列表中first的初始值是second的值,所以這樣的初始化順序是錯誤的。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

c++為類中提供類成員的初始化列表。

類物件的構造順序是這樣的:

1.分配記憶體,呼叫建構函式時,隱式/顯示的初始化各資料成員

2.進入建構函式後在建構函式中執行一般計算

1.類裡面的任何成員變數在定義時是不能初始化的。

2.一般的資料成員可以在建構函式中初始化。

3.const資料成員必須在建構函式的初始化列表中初始化。

4.static要在類的定義外面初始化。   

5.陣列成員是不能在初始化列表裡初始化的。

6.不能給陣列指定明顯的初始化。

這6條一起,說明了乙個問題:c++裡面是不能定義常量陣列的!因為3和5的矛盾。這個事情似乎說不過去啊?沒有辦法,我只好轉而求助於靜態資料成員或者使用列舉。

到此,我的問題解決。但是我還想趁機複習一下c++類的初始化:

1.初始化列表:

demo::demo() : x(3), y(5){}

2.類外初始化:int csomeclass::myvar=3;

3.const常量定義必須初始化,c++類裡面使用初始化列表;

4.c++類不能定義常量陣列。

在c++類中,必須做如下事情:

1.必須對任何const或引用型別成員以及沒有預設建構函式的類 型別 的任何成員 顯示地使用初始化列表進行初始化;

2.類成員在定義時是不能被初始化的;

3.類的成員初始化順序與成員變數在建構函式中的位置選後順序無關,與成員變數在類中定義的先後順序有關。

例如 : 

class

demo  }

這個初始化列表的順序是錯誤的,首先在宣告成員變數的時候first要先於second,所以初始化順序是先初始化first,然後再second。但是初始化列表中first的初始值是second的值,所以這樣的初始化順序是錯誤的。

C 類成員和資料成員初始化總結

c 為類中提供類成員的初始化列表 類物件的構造順序是這樣的 1.分配記憶體,呼叫建構函式時,隱式 顯示的初始化各資料成員 2.進入建構函式後在建構函式中執行一般計算 1.類裡面的任何成員變數在定義時是不能初始化的。2.一般的資料成員可以在建構函式中初始化。3.const資料成員必須在建構函式的初始化...

初始化C 類成員

問題 我的問題是關於初始化c 類成員的。我見過許多這樣的 包括在你的欄目中也見到過 csomeclass csomeclass x 0 y 1 而在別的什麼地方則寫成下面的樣子 csomeclass csomeclass x 0 y 1 我的一些程式設計師朋友說第二種方法比較好,但他們都不知道為什麼...

類成員初始化

在類內部 初始化的順序 靜態的成員變數 普通的成員變數 構造器的呼叫。在派生類中 初始化的順序 呼叫基類的構造器 按宣告順序呼叫成員的初始化方法 呼叫派生類構造器主體 大多數類的初始化都是按照這些順序結合在一起的。下面是乙個例子 public class test extends sub publi...