C 類的成員變數在宣告時初始化

2021-10-09 03:43:10 字數 514 閱讀 3014

能。可能早先的版本不能,但是c++11標準下能。有人說在宣告的時候初始化相當於在建構函式中初始化,其實不是的,成員變數初始化的順序為:先進行宣告時初始化,然後進行初始化列表初始化,最後進行建構函式初始化,如下**:(另外初始化列表中初始化的順序是和變數宣告的順序一樣,而與列表中的順序無關)

#include using namespace std;

class test

test(int a_) : a(a_) {}

test(int a_, bool b):a(3) {}

int geta()

private:

int a = 10;

};int main(void)

輸出結果:

1023

請按任意鍵繼續. . .

結果如圖,可看出,初始化列表初始化的變數值會覆蓋掉宣告時初始化的值,而建構函式中初始化的值又會覆蓋掉初始化列表的,足以看出初始化的順序

c 類的成員變數初始化

最近在做乙個關於boost的專案,修改將原本的多個commandline進行合併精簡,合併成乙個path路徑,然後再加上不同的hardcode的檔名組成乙個完整的路徑。由於在使用ptree時會呼叫靜態方法建立乙個instance的類,因此這裡需要使用靜態成員變數。大概整理了一下以前沒有注意過的類的成...

類成員變數初始化

在 c 中,類的成員變數未初始化問題,取決於物件建立方式,不同的建立方式,直接導致類成員變數的初值不同。本文通過下例,得出一下結論 1.在函式體內置立乙個物件,類成員變數和普通的區域性變數一樣,是乙個隨機值。2.建立乙個全域性成員物件,類成員變數和全域性變數一樣,編譯器賦值為 0。3.在函式體內 n...

C 類中成員變數初始化

c 類中成員變數包括主要四種 普通成員變數,常量成員變數,靜態成員變數,靜態常量成員變數 上述成員變數該如何初始化,注意不是賦值。由於普通成員變數和常量成員變數,每乙個類例項化,都乙份記憶體拷貝。c 規定成員變數在宣告 注意宣告與定義區別 時,不允許初始化,因此這些變數只能放在建構函式初始化列表中。...