2012-11-30 7 views
7

Mögliche Duplizieren:
initialize a const array in a class initializer in C++const Array Klasse Memberinitialisierungsliste

Es ist ein Neuling Frage. Wie initialisiert man eine konstante Integer-Array-Klasse? Ich denke, dass in diesem Fall das klassische Array nicht die beste Wahl ist, was sollte ich stattdessen verwenden?

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

Danke für Ihren Kommentar, ich schaute diese Frage, aber diese Frage wurde im Jahr 2008 beantwortet, und es gab einige Diskussionen über mögliche neue Standart-Features, die später im Jahr 2011 angenommen wurde. – vard

+3

Es gibt eine Antwort für C++ 11 in dieser Frage . –

+0

Sorry, ich kann nicht finden (( – vard

Antwort

5

Statisch machen?

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

Leider erlaubt mein Compiler dies nicht. Er sagte, dass es mehrere Array-Deklaration. – vard

+2

@vard 'const int GameInstance :: gameRulesTable [2 ] [2] = {{1,2}, {3,4}}; '- Dies sollte in einer CPP-Datei sein. – Stals