2012-10-12 28 views
11

一個靜態常量向量類的成員,我需要一個initializ靜態常量向量類成員... 我試圖如何initializ在C++ 11

static const vector<string> vr ({"2", "3", "4"}); 

static const vector<string> vr = {"2", "3", "4"}; 

static const vector<string> vr {"2", "3", "4"}; 

他們不工作....

我正在使用eclipse與mingw(我已啓用c + + 11)

+0

定義靜態變量和外面做任務 - –

回答

7

聲明您的靜態成員在您的類定義,但在外面定義它們。

class MyClass { 
public: 
    // declaration 
    static const std::vector<std::string> vec; 
}; 

// definition 
const std::vector<std::string> MyClass::vec = ...; 

的例外是整型,

class MyClass { 
public: 
    // declaration and definition 
    static const int MAX_BURRITOS = 5; 
}; 
+0

整數類型的例外僅適用於值從未使用ODR的情況。 – ildjarn

9

靜態變量初始化類之外完成,這樣的:內部類

class Example 
{ 
    static const vector<string> vr; 
    // ... 
}; 

const vector<string> Example :: vr ({"hello", "world"}); 
+0

有什麼辦法用'static'成員函數初始化一個'const'' vector''? – phoenix