【发布时间】:2016-12-23 09:51:44
【问题描述】:
我无法理解这里的问题,所以我希望有人能帮忙 我有这样的程序开始 int main():
Board br;
GetNames();
br.PresentPlayer();
system("PAUSE");
return 0;
GetNames() 看起来像这样:
char p[100];
char p2[100];
Board br;
cout << "Please Enter Player 1's Name:";
cin >> _player_name_1;
cout << "Please Enter " << _player_name_1 << "'s Symbol(Make sure its 1 characters long):";
cin >> p;
cout << "Please Enter Player 2's Name:";
cin >> _player_name_2;
cout << "Please Enter " << _player_name_2 << "'s Symbol(Make sure its 1 characters long):";
cin >> p2;
br.SetSymbols(p[0], p2[0]);
Board::SetSymbols(char p,char p2) 看起来像这样:
void Board::SetSymbols(char p1,char p2)
{
_player_char_1 = p1;
_player_char_2 = p2;
_current_player = _player_char_1;
cout << _current_player << endl;
}
变量在 Board.h 中:
char _player_char_1;
char _player_char_2;
char _current_player;
最后是 PresentPlayer():
void Board::PresentPlayer()
{
cout << _current_player << endl;
}
所以当 SetSymbols 被执行时,它会正确打印出 _player_char_1 但是,当 PresentPlayer 被执行时,它会打印出你会执行此操作的那些符号 alt+numlock 数字
为什么会这样??
【问题讨论】:
-
为什么
Board::SetSymbols有两次? -
什么是
PresentPlayer? -
您有两份 Board br。您在一个中设置数据,然后在另一个中打印值。
-
main()中的br与GetNames中的br不同。 -
我已将 PresentPlayer 添加到我的问题中