[英]C++ Circular Struct
好的,基本上,我在板上有一块结构,如下所示:
struct piece
{
int value;
bool revealed;
bool canMove(int x, int y)
{
//This is where the problem is.
if (board[x][y].value == 13) //If it's not occupied
return true;
else
return false;
}
};
//Define the board
piece board[x][y];
这给了我错误,例如'board':未声明的identifier 。 我怎样才能解决这个问题? 我试过将板声明放在该结构之前,但是它只是说那是一个未声明的标识符。
我意识到我可以只将板子作为参数传递,但是我有几个功能,这将花费比我更多的时间,因此,如果有其他解决方案,请告诉我!
这个问题是有关(但不相同),以质询
您必须将类定义与其成员函数的实现分离开来,以便编译器始终知道您在说什么:
struct piece
{
int value;
bool revealed;
bool canMove(int x, int y); // this is sufficient for the moment
};
piece board[x][y]; // now, compiler knows what a piece is.
bool piece::canMove(int x, int y)
{ // now board is known as well
if (board[x][y].value == 13)
return true;
else
return false;
}
声明canMove
在类内部,然后在声明board
之后在外部定义它。 此时,您可以成功参考board
。
您正在一块一块地混合。 这确实是错误的设计。
您的方法canMove属于单件。 因此,其定义应反映以下事实:
bool canMove() const
{
return value == 13;
}
要获得想要从2D数组阵列中获取的内容,请执行以下操作:
board[x][y].canMove()
当然,您可以创建新的类Board来封装其行为,例如方法canMove带有2个参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.