我对Reversi游戏的C++程序的类有困难。基本上,我的问题是在退出函数之后,尝试获取一个2D数组(它是一个私有类变量)来更新。数组被声明为类Board的私有变量,如下所示(MAX_SIZE = 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] << " ";
}
}
}下面是printBoard函数,当被调用时,它只是打印胡言乱语。我怀疑这是因为在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++和类,并不真正理解指针之类的东西。我怎样才能让董事会更新和保持职能之间的这种方式?如有任何反馈将不胜感激,谢谢!
发布于 2014-03-08 02:44:27
内部
void Board::CreateBoard()
您已经声明了一个局部变量char Board[BoardSize][BoardSize],您正在使用-进行填充。
但在你的
void Board::PrintBoard()
我认为您正在调用类中定义的char Board[MAX_SIZE][MAX_SIZE]。
因此,您正在设置一个局部变量,并打印未设置的类变量,因此产生了奇怪的输出。
https://stackoverflow.com/questions/22264234
复制相似问题