gpt4 book ai didi

C++ Java static final 等价物

转载 作者:可可西里 更新时间:2023-11-01 18:29:32 24 4
gpt4 key购买 nike

我正在使用 C++ 编写国际象棋游戏程序。我想为类 Board 创建两个类属性:ROWS 和 COLUMNS。在 Java 中,我会将它们声明为 static final,一切都会按我的意愿运行。我如何在 C++ 中做同样的声明?我需要在其他类中通过“Board::ROWS”和“Board::COLUMNS”访问这些属性。

我所拥有的是这个,它抛出编译错误,因为 ROWS 和 COLUMNS 没有在 m_TileMap 的声明范围内声明。在不使用 #define 语句的情况下执行此操作是否有好的做法?

class Board {
Tile *m_TileMap[ROWS][COLUMNS];

public:
static const int ROWS = 8;
static const int COLUMNS = 8;

Board(int m[ROWS][COLUMNS]);
}

最佳答案

在声明 ROWS 和 COLUMNS 之后声明你的 m_TileMap

例如

class Board {

public:
static const int ROWS = 8;
static const int COLUMNS = 8;

Board(int m[ROWS][COLUMNS]);

private:
Tile *m_TileMap[ROWS][COLUMNS];
};

这是因为在C++中,编译器不会向前读取。因此,为了在声明 m_TileMap 时编译器能够理解 ROWSCOLUMNS,需要先声明它们。

关于C++ Java static final 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16615071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com