これはヘッダである:クラスゲームのメンバ関数void BuildGame
で無効な使用「ボード:: N」
class Board {
public:
friend class Game;
Board() = default;
Board(int n) : N(n) { }
Board& SetType(int, int, char);
void GetType(int, int);
Board& CreateEmptyBoard();
void BoardDisplay();
private:
int N = 0;// dimension
char Maze[15][15];
const static int MaxSize = 15;
};
class Game {
public:
Game() = default;
Game(int x, int y) : PosX(x), PosY(y) { }
void BuildGame();
void GameDisplay();
void MoveUp();
void MoveDown();
void MoveLeft();
void MoveRight();
private:
int PosX = 0;
int PosY = 0;
};
void Game::BuildGame() {
srand(time(NULL));
for (int i = 0; i < Board::N; i++) {
for (int j = 0; j < Board::N; j++) {
if (i == rand() % (Board::N) && j == rand() % (Board::N))
Board::Board& SetType(i, j, 'W');
}
}
}
、私はこれを定義したクラスBoard.Iにメンバ関数Board& SetType(int,int,char)
を呼びたいですヘッダーファイル内の関数であり、ここには表示されません。それから私はプロジェクトを構築する、私はinvalid use of non-static data member 'Board::N'
と'SetType' was not declared in this scope
を得た。 Like this
どこが間違っていますか?私はそれを見つけることができません。
@ildjarn私はこの問題を解決することを真剣に考えています。 –