假设我有一个Game类型的对象在某个地方实例化,我有另一个名为Writer的类,我想保存它....
所以在我Writer
上课......
void gameWriter(Game g) {
some wonderful logic here....
}
在Game
内,我想调用gameWriter
...所以我有一个像这样的方法(在Game
内)
void Game::saveGameDetails() {
Writer w;
w.gameWriter(this); //this is where it fails...
}
如何使用我目前使用的同一个对象在gameWriter
内拨打Game
?
答案 0 :(得分:1)
要在语法上正确,您需要使用:
w.gameWriter(*this);
我会进一步建议在Game const&
中使用Game&
或gameWriter
作为参数类型。
void gameWriter(Game const& g) { ... }
然后,您将节省创建Game
。
答案 1 :(得分:0)
它失败是因为你根据this
的签名传递指针gameWriter
,它期望对象本身。试试这个
void Game::saveGameDetails()
{
Writer w;
w.gameWriter(*this);
}
答案 2 :(得分:0)
不确定这是否有效,但尝试将Writer()声明为静态类。然后,你不需要在你的Game实例中实例化它,只需调用Writer.Save(this);
我建议这是因为我猜测当你将一个游戏实例传递给gameWriter()的实例时会发生错误,但由于w在游戏中,所以事情可能会变得奇怪。