2012-11-30 36 views
7

Eventuali duplicati:
initialize a const array in a class initializer in C++const inizializzazione di matrice membro della classe

E 'una domanda newbie. Come inizializzare un membro della classe dell'array intero costante? Penso che nello stesso caso l'array classico non è la scelta migliore, cosa dovrei usare al posto di esso?

class GameInstance{ 
    enum Signs{ 
     NUM_SIGNS = 3; 
    }; 
    const int gameRulesTable[NUM_SIGNS][NUM_SIGNS]; // how to init it? 
public: 
    explicit GameInstance():gameRulesTable(){}; 
}; 
+0

Grazie per il tuo commento, ho guardato questa domanda, ma a questa domanda è stata data risposta nel 2008, e ci sono state alcune discussioni sulle possibili nuove funzionalità standard, che sono state accettate più avanti nel 2011. – vard

+3

C'è una risposta per C++ 11 in quella domanda . –

+0

Spiacente, non riesco a trovare (( – vard

risposta

5

Rendere statico?

class GameInstance{ 
    enum Signs{ 
     NUM_SIGNS = 3}; 
    static const int gameRulesTable[2][2]; 
public: 
    explicit GameInstance(){}; 
}; 

...in your cpp file you would add: 
const int GameInstance::gameRulesTable[2][2] = {{1,2},{3,4}}; 
+0

Sfortunatamente il mio compilatore non lo consente. Ha detto che c'è più dichiarazioni di array. – vard

+2

@vard 'const int GameInstance :: gameRulesTable [2 ] [2] = {{1,2}, {3,4}}; '- questo dovrebbe essere in un file .cpp. – Stals

Problemi correlati