Luc*_*utz 7 c++ static const declaration
我正在使用C++编写国际象棋游戏.我想为类Board创建两个类属性:ROWS和COLUMNS.在Java中,我会将它们声明为静态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]);
}
Run Code Online (Sandbox Code Playgroud)
在 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];
};
Run Code Online (Sandbox Code Playgroud)
这样做的原因是因为在 C++ 中,编译器不会向前读。所以为了让编译器在声明 m_TileMap 时理解ROWS并COLUMNS理解它们,它们需要在之前声明。