我遇到了一个小问题,我想让两个不同的类能够共享并更改另一个类对象。C++在对象之间共享变量。
我有一个HumanPlayer类,一个ComputerPlayer类和一个Board类。两个玩家类需要能够与一个Board类进行交互。我认为我可以将对同一个Board对象的引用传递给每个类,但它看起来没有按照我希望的方式工作。下面是什么在主要组成部分,我将描述发生了什么事,尽我所能:
//main.cpp
Board *board2 = new Board();
board2->setBoardSize(5);
board2->initPits();
HumanPlayer firstPlayer(*board2, *menu, menu->askForFirstTurn(), true);
firstPlayer.removeFromPit(3);
board2->showBoard();
firstPlayer.removeFromPit(3);
应该只是在板类数组来设置的值零。它是这样做的。如果我要从FirstPlayer类的代码中显示板,它将显示更改。但是当我打电话给board2->showBoard()
就好像没有什么改变。它仍然是原来不变的董事会。我真正想要发生的事情是让我的firstPlayer和secondPlayer类在一个共享板对象上工作。我只是不确定如何正确地实现这一点。
谢谢大家的帮助。如果您需要更多信息,请与我们联系。
'HumanPlayer firstPlayer(* board2,*菜单,菜单 - > askForFirstTurn(),TRUE);'是不确定的行为。 – Marlon
@Marlon:这是怎么回事?我看起来很好。 –
您发布的代码对我来说确实很好。它应该完成你所描述的。所以问题可能是如何实现removeFromPit()。或者,也许你如何在HumanPlayer类中存储板参考。 – tp1