对于一个学校任务,我们被指示制作一个TicTacToe委员会。我的程序当前工作,但这里是我遇到了一些问题,我也不太清楚他们为什么不正确:初学者C++问题(学校项目调试问题)
class TicTacToe{
private:
char user_Turn[] = {'x','o'}; //Array to keep track of turn
当我试着和我得到一个错误和警告编译。警告是“非静态数据成员的类内初始化是C++ 11扩展”。在课堂上初始化非静态数据成员是不好的做法吗?为什么?
错误是“数组边界不能从在级初始化器推导”。当我在阵列中放置一个'2'时,它就会消失。所以类中的数组需要被绑定?这是为什么?为什么不能通过初始化器推导出界限?
我的第二个问题是,在同一个项目需要我们用一个枚举对象来声明一个胜利者/失败者/名为董事会单独的类画。枚举是公开宣称:
public:
enum Game {X_WON, O_WON, DRAW, UNFINISHED}; //enum declaration
和我的井字游戏类有一个董事会对象称为委员会1的数据成员。为什么使用枚举我需要做的:
Board::UNFINISHED
,而不是
Board.UNFINISHED
此外,即使在我局实施的文件,我需要做的这是返回一个枚举变量的函数:
Board::Game Board::gameState()
它在同一个班级,所以为什么游戏需要由'Board ::'进行。我想我很少理解枚举与类的关系。
谢谢!非常感谢谁回答。
这是一个问题和答案网站。问题是单数,而不是复数。其中两个问题甚至不是关于你发布的三行(不完整)代码。您可能想要查看[问]。 (编译器错误不是*调试*,以供将来参考。调试是找出为什么你正在执行的代码不能按预期工作,并且你不能执行无法编译的代码。) –
我定义了Questio ** N **和答案,而不是问题** S **和答案。显然你很难区分单数(** ONE **)和多个(** MORE THAN ONE **)之间的差异。在获得有关正确使用本网站的信息时,您应该花时间代替[参观]并阅读[帮助]页面以了解该网站的工作方式,而不是嗤之以鼻。他们不是连接的问题;他们是关于同一代码中两个单独问题的三个问题,其中大部分甚至未包含在问题中。是的,**单数**实际上意味着**一个**。去谷歌上查询。 –