c 類的成員變數初始化

2021-09-09 09:23:33 字數 822 閱讀 1290

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

普通成員變數的初始化可以在建構函式中進行賦值, 也可以在初始化列表中進行賦值, 具體裡的例子如下:

class

ctest

;ctest::

ctest()

orctest::

ctest()

:mdata(0

)

靜態成員變數必須在類外進行初始化, 且初始化時不加static字首。

class

ctest

;ctest::

ctest()

int mdata =0;

/// 類外初始化

const變數在初始化列表中進行初始化。

class

ctest

;ctest::

ctest()

:data(0

)

引用成員變數也需要在初始化列表中進行初始化, 類似於const型。

int gfirst;

class

ctest

;ctest::

ctest()

:msecond

(&gfirst)

就到這裡吧。

類成員變數初始化

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

C 類中成員變數初始化

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

c 成員變數初始化

include include using namespace std classa a a intmain 類a的成員變數將進行預設初始化 c 11新特性允許為資料成員提供類內初始值 include include using namespace std classa a a intmain a....