C 中map類設為const時的初始化方法

2021-09-02 01:29:56 字數 806 閱讀 4207

首先,在c++中,乙個被const修飾的變數是需要在宣告時就進行賦值的,那麼,對於複雜型別,該如何進行初始化?

對於乙個僅被const修飾的map,我們可以用如下方式進行初始化

相比c#的dictionary的初始化,我們需要在每組值前面加上std::map::value_type,value_type是泛型程式設計中用於同一訪問容器元素的乙個typedef(下圖是由於c++11中用using取代了typedef)

當乙個map再加上static修飾符時,就無法再使用上文的方法進行初始化了,編譯器會丟擲如下錯誤:

這裡,我們就需要將宣告和初始化分開寫了,首先,在類中宣告這個變數(這裡在mailclientsocket.h中進行宣告)

然後,轉到mailclientsocket.cpp中進行初始化

如果將初始化放在mailclientsocket.h中,編譯器會丟擲乙個重定義的錯誤

也就是說對於乙個const static map的變數,我們的宣告和初始化需要分放在.h以及.cpp中才可以。

c 類中的const成員

const成員變數 舉個例子 include using namespace std classa private const intsize int main 說明 但是 此時的const變數屬於具體的乙個物件,如何在整個類中都恆定不變呢?答案是利用列舉,舉例 include using name...

C 中const的用法 03 類

前面介紹了const 在常量與指標和const 在函式中的用法,雖然放在不同的位置會有不同的用法,但歸根結底,const 的思想都沒有變 那就是用來修飾乙個不能被改變的量。然而,const 在類中的含義有所不同。下面我們來介紹const在類中的具體情況。const 不僅被用來修飾類的成員,還可以在類...

C 中類的const成員函式和const物件

2.const成員函式 即普通成員函式後再加const。它可以讀取資料成員的值,但不能修改它們。若要修改 時,資料成員前必須加mutable。以指定其可被任意更改。mutable是ansic 考慮到實際程式設計時,可能一定要修改const物件中的某個資料成員而設的。const成員函式可以被相同參數列...