类C 反向程序的麻烦

Trouble with Classes C++ Reversi Program

本文关键字:麻烦 程序      更新时间:2023-10-16

我在corversi游戏的C 程序上遇到了麻烦。基本上,我的问题是试图在退出功能后获得一个2D数组(这是一个私人类变量)。该数组被声明为类板的私人变量,如下所示:( max_ize = 10,但数组大小由主中的第一个参数控制。)

private:
//array variable for the board
char Board[MAX_SIZE][MAX_SIZE];
int BoardSize;
};

这是我创建木板的地方,将其设置为所有破折号开始。我用cout调试了它,以验证它的工作正常,而且确实如此。

void Board::CreateBoard(){
char Board[BoardSize][BoardSize];
//Sets the board to be all dashes
for (int i=0; i < BoardSize; i++){
 for (int j=0; j < BoardSize; j++){
  Board[i][j] = '-';
  cout << Board[i][j] << " ";
  }
 }
}

这是打印板函数,当称为它时,它简单地打印了gibberish。我怀疑这是因为董事会在createboard()函数结束后恢复到了以前的状态。

void Board::PrintBoard(){
//Prints out the array board
for(int i=0;i < BoardSize;i++){
for(int j=0;j < BoardSize;j++){
  cout << Board[i][j];
  }
 }
}

我是C 和课程的新手,并且不太了解指针等。如何在功能之间使董事会更新和保持这种方式?任何反馈都将不胜感激,谢谢!

内部
void Board::CreateBoard()
您已经声明了用-填充的局部变量char Board[BoardSize][BoardSize]
但是在你的
void Board::PrintBoard()
我认为您正在调用班级定义的char Board[MAX_SIZE][MAX_SIZE]

因此,您正在设置一个本地变量并打印未设置的类变量,因此怪异的输出。