C 中多語句建立「類成員變數」

2021-08-14 05:25:11 字數 1046 閱讀 7644

因為業務背景需要,需要做以下需求:

1, 定義乙個屬於「類」的成員變數,即所有物件都可以訪問這個成員。

2, 這是乙個「複雜的類成員」,即是乙個復合型別,如map, vector等。

3, 初始化這個類成員,需要多條語句才能初始化,如需要for,條件判斷。

// a.h

#include class a ;

下面是函式定義

// a.cpp

const std::mapa::m_data = a::contructdata();

std::mapa::contructdata()

return tempdata;

}

顯然,進一步增加需求,還可以完善**:

1, 初始化的函式,不需要訪問「類內」定義的常量。由於每個原始碼檔案是乙個編譯單元,因此可以將該函式限制在當前的命名空間:

namespace 

}

2,如果成員變數m_data只有函式"getbool()"訪問,則可將該成員變數移入函式「getbool()」中進行建立.此時data依然只是建立一次。若使用const修飾,則無法改變map中的資料。

int a::getbool(int index)

1, static const和const static 意義相同,沒有區別。

2, 函式中的static變數,只初始化一次,當再次呼叫該函式,static變數不會再次被初始化。

3, static變數是復合物件,且其成員為指標,如下面形式,則const只是對std::map的修飾,即一經初始化,該map不能再做改變,但是其內容可以做出改變,map中的int*指向的資料依然可以被修改。

static const std::mapdata
若想進一步控制map中內容也不被修改,可使用下面**:

static const std::mapdata

C 類的成員變數

類的宣告中類的主體 通常包含類的成員變數和成員方法.宣告成員變數的語法如下 訪問修飾符 資料型別 成員變數 成員變數命名規範如下 如果是公共成員變數 受保護的成員變數 內部成員變數,使用駱駝命名法,如name,gender等。如果是私有成員變數,使用駱駝命名法,並以下劃線開頭。如 age,score...

靜態成員變數 類 C

if 0 如何訪問靜態成員 四種用法 1 rectangle printtotal 2 rectangle r r.printtotal 3 rectangle p r p printtotal 4 rectangle ref r int n ref.ntotalnumber p printtota...

C 類的成員變數

類的宣告中類的主體 通常包含類的成員變數和成員方法.宣告成員變數的語法如下 訪問修飾符 資料型別 成員變數 成員變數命名規範如下 如果是公共成員變數 受保護的成員變數 內部成員變數,使用駱駝命名法,如name,gender等。如果是私有成員變數,使用駱駝命名法,並以下劃線開頭。如 age,score...