二 c 類的成員初始化問題

2021-08-27 08:11:36 字數 839 閱讀 2454

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

類的定義實際相當與型別宣告,並沒有分配儲存空間,初始化的資料**放? 類例項化以後才會有實體儲存位址及空間。當用類構造物件的時候首先分配記憶體然後呼叫建構函式,這時候才可以初始化非靜態成員變數.

靜態成員變數定義的時候在靜態儲存區中就分配了記憶體所以可以初始化

(2)一般的資料成員可以在建構函式中初始化。(構造初始化列表初始化和建構函式體內賦值初始化)

(3)const資料成員必須在建構函式的初始化列表中初始化。(道理很簡單,const成員第一次資料初始化就是發生在類構造資料初始化時,一旦過了此時就會出現問題)。

(4)static在類的定義外面初始化。   

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

-----------------test.h----------------------------

#pragma once

class test

;--------------------test.cpp-----------------------------------

#include ".\test.h"

int test::var3 = 3333333; //正確-4、static可在類的定義外面初始化

//int test::var1 = 11111; 錯誤-只有靜態成員才能在類的外面初始化

test::test(void) :var1(11111),var2(22222) //正確;但var3(33333) 不能在這裡初始化

test::~test(void)

初始化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個預...