2012-11-30 82 views
7

可能重复:
initialize a const array in a class initializer in C++常量数组类成员初始化

这是一个新手的问​​题。如何初始化常量整数数组的类成员?我认为在相同情况下,经典数组并不是最佳选择,我应该使用什么来代替它?

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

感谢您的评论,我看了这个问题,但这些问题在2008年得到了回答,并且有关于可能的新标准功能的一些讨论,这些功能在2011年晚些时候被接受。 – vard

+3

C++ 11在该问题中有一个答案。 –

+0

对不起,我找不到(( – vard

回答

5

使它静态?

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

不幸的是我的编译器不允许这样做。他说有多个数组声明。 – vard

+2

@vard'const int GameInstance :: gameRulesTable [2 ] [2] = {{1,2},{3,4}};' - 这应该在.cpp文件中。 – Stals