传递类对象作为类的参数



我一直在开发一款俄罗斯方块游戏,我必须将一个对象作为参数传递给函数,以便在函数内部使用该对象。

我做了这个函数,它应该能够从Main.cpp控制Board对象更新坐标

void BlockInfo::send(Board board)
{
for (int i = y; i < y + 4; i++)
{
for (int j = x; j < x + 4; j++)
{
if (block[blockType][rotation][j][i])
{
board.setBoard(j, i, true);
}
}
}
}

Main.cpp

Board board;
while (true)
{
Board board;
BlockInfo blcInf;
blcInf.send(board);
board.draw();
}

这应该在终端上画一个俄罗斯方块,但它没有。

所以我试着把send函数改成:

void BlockInfo::send(Board board)
{
board.setBoard(3, 3, true);
}

这应该在控制台(3,3)处绘制一个单独的块,但它没有。假设除了这一切工作正常(我检查了,我很确定),这里的问题是什么?如果您认为这部分没有问题,您认为问题出在哪里?

对于void BlockInfo::send(Board board)blcInf.send(board);,您总是制作board的副本,并且在send中修改该副本-但不是来自main的原始board

您需要通过引用传递Board,而不是通过值。

使用void BlockInfo::send(Board& board),您不是在制作副本,而是在制作参考。因此,send直接处理从main传入的board,当您调用draw时,您将看到更改。

相关内容

  • 没有找到相关文章

最新更新