C 類資料成員的初始化

2021-05-02 22:40:25 字數 689 閱讀 3934

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

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

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

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

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

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

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

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

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

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

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

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

1.初始化列表:csomeclass::csomeclass() : x(0), y(1){}

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

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

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

關於const,複習一下常量指標: 

如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量。

初始化C 類成員

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

C 類成員的初始化

1 關於建構函式 1 用建構函式確保初始化 對於乙個空類 class empty 編譯器會自動宣告4個預設函式 建構函式,拷貝建構函式,賦值函式,析構函式 當然,如果不想使用自動生成的函式,就應該明確拒絕 這些生成的函式都是public且inline。建構函式對資料成員進行初始化,使用未初始化值可能...

C 類成員的初始化

分類 c c 進行時 2012 04 11 10 02 14697人閱讀收藏 舉報 c string initialization class 編譯器面試 1 關於建構函式 1 用建構函式確保初始化 對於乙個空類 cpp view plain copy class empty 編譯器會自動宣告4個預...