2012-10-12 264 views
11

necesito initializ un miembro de la clase const vector estática ... me han tratadocómo initializ un miembro estático const clase de vectores en 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"}; 

que no funcionan ....

Estoy usando eclipse con mingw (he habilitado C++ 11)

+0

variables estáticas definidas dentro de clase y asignación de tarea fuera - –

Respuesta

7

Declare sus miembros estáticos en su definición de clase, pero defínalos fuera.

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

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

La excepción a esto es tipos integrales,

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

La excepción para tipos integrales solo se aplica si los valores nunca se usan con ODR. – ildjarn

9

estático inicialización de variables se realiza fuera de la clase, como este:

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

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

¿Hay alguna forma de inicializar un 'const'' vector' con una función miembro 'static'? – phoenix

Cuestiones relacionadas