如何在我的类的.cpp文件中定义静态数组

时间:2014-09-05 15:08:06

标签: c++ arrays pointers static

我知道有很多关于静态函数和变量的问题讨论,但我找不到解释我这样做的事情:

board.h

 class board:public QGraphicsPixmapItem 
{
public:
    board();
    static basedice *gamepos[8][8];
};

我希望像这样定义我的数组:

board.cpp

board::board()
{
    for (int i=0;i<8;i++)
    {
        for (int j=0;j<8;j++)
        {
        gamepos[i][j]=NULL;
        }
    }

}

我还有一个问题,这是一种在许多类中使用数组的正确方法,例如全局数组...例如在国际象棋游戏中保存我的作品的位置? 抱歉我的英语不好。

2 个答案:

答案 0 :(得分:1)

如果你真的希望gamepos数组是静态的,你可以在类Board中声明一个静态方法来初始化数组。

然后从课外调用此方法。

int main() {

    Board * myboard = new Board();
    Board::initGamepos();

}

然而,查看您的代码以及您想要做什么(每次创建新的Board实例时重新初始化gamepos数组,很明显您不希望gamepos是静态的。 1板&lt; =&gt; 1 gamepos数组:这不是静态成员的标记,即标准成员的标记。

答案 1 :(得分:0)

静态变量自动初始化为零/ false / null,因此您不需要初始化数组。

无论如何,您不应该从实例构造函数重新初始化 static 变量,因为这会产生有趣的结果。