首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类C++ Reversi程序的问题

类C++ Reversi程序的问题
EN

Stack Overflow用户
提问于 2014-03-08 02:30:49
回答 1查看 547关注 0票数 1

我对Reversi游戏的C++程序的类有困难。基本上,我的问题是在退出函数之后,尝试获取一个2D数组(它是一个私有类变量)来更新。数组被声明为类Board的私有变量,如下所示(MAX_SIZE = 10,但数组大小主要由第一个参数控制)。

代码语言:javascript
复制
private:
//array variable for the board
char Board[MAX_SIZE][MAX_SIZE];
int BoardSize;
};

这是我创建板的地方,把它设置为所有的破折号开始。我用cout对它进行了调试,以验证它是否正确工作。

代码语言:javascript
复制
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()函数结束后,董事会将恢复到以前的状态。

代码语言:javascript
复制
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++和类,并不真正理解指针之类的东西。我怎样才能让董事会更新和保持职能之间的这种方式?如有任何反馈将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-08 02:44:27

内部

void Board::CreateBoard()

您已经声明了一个局部变量char Board[BoardSize][BoardSize],您正在使用-进行填充。

但在你的

void Board::PrintBoard()

我认为您正在调用类中定义的char Board[MAX_SIZE][MAX_SIZE]

因此,您正在设置一个局部变量,并打印未设置的类变量,因此产生了奇怪的输出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22264234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档