2012-10-12 13 views
11

ho bisogno di initializ un membro della classe const vettore static ... ho cercatoCome initializ un membro della classe const vettore static in 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"}; 

che non funzionano ....

Sto usando eclipse con mingw (ho abilitato C++ 11)

+0

variabili statiche definite all'interno della Classe e mandato all'esterno - –

risposta

7

Dichiarare i membri statici nella definizione della classe, ma definirli all'esterno.

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

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

L'eccezione è tipi integrali,

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

L'eccezione per i tipi interi si applica solo se i valori non sono mai utilizzati ODR. – ildjarn

9

statica inizializzazione variabile viene effettuata all'esterno della classe, in questo modo:

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

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

C'è un modo per inizializzare un 'const'' vector' con una funzione membro 'static'? – phoenix

Problemi correlati