我正在编写一些"额外的'岩石,纸和剪刀的版本。 它是国际象棋和RPS之间的某种混合。 典当在船上相遇,按照RPS规则进行战斗,并且任何人都会死亡(被删除)。 船上的每个方块都有2个指针,用于每个棋子。当一个棋子死了,我希望他能够将他的指针置于正方形中,所以我制作了方形结构的静态矩阵(它有两个指针的指针),所以我可以访问它并将指针nullptr,但我可以&#39 ; t使用本地类变量。 class point {
char x, y;
pawn class:
class game;
class pawn {
point *location;
char type;
char currentState = 0;
public:
~pawn()
{
delete(location);
}
};
和游戏类:
typedef char score;
typedef struct Square {
pawn *p1, *p2;
}square;
class game {
player *player1, *player2;
score p1 = 0, p2= 0;
static square board[10][10];
};
我想过编写一个pawn析构函数,如:
~pawn () {
(game().getBoard())[x][y] = nullptr;
delete (location); }
有没有办法这样做?也许改变" #include"文件顺序或什么? (我在这个项目中有大约10个文件)。
答案 0 :(得分:0)
(game().getBoard())[x][y] = nullptr;
game()
正在创建一个类的实例,然后调用一个函数,可能会获得对静态board
成员的引用。
虽然这可能会有效,但您可能希望拨打game::getBoard()
,并使getBoard()
成为静态,如果还不是这样的话。
现在,不清楚x
和y
的来源 - 确定它们不能是point
中的非静态成员变量,如图所示。