如何将同一个对象传递给另一个对象的另一个方法
How can I pass the same object to another method of another object?
假设我在某个地方实例化了一个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...
}
如何使用我当前使用的同一对象在Game
中调用gameWriter
?
为了语法正确,您需要使用:
w.gameWriter(*this);
我进一步建议使用Game const&
或Game&
作为gameWriter
中的参数类型。
void gameWriter(Game const& g) { ... }
然后,您将节省创建Game
副本的成本。
它失败是因为您传递了一个指针this
,而根据gameWriter
的签名,它期望对象本身。试试这个
void Game::saveGameDetails()
{
Writer w;
w.gameWriter(*this);
}
不确定这是否有效,但请尝试将Writer()声明为静态类。然后,您不需要在Game实例中实例化它,只需调用Writer.Save(this);
我建议这样做是因为我猜当你把一个游戏实例传递给gameWriter()的实例时会发生错误,但由于w在game内部,事情可能会变得奇怪。
相关文章:
- 我可以有一个与另一个向量共享存储的向量
- 如何在C++中将一个对象从一个向量复制到另一个向量?
- 如何创建一个将另一个函数作为参数的函数,该函数具有未知数的参数
- 当动态创建一个包含另一个动态创建的结构数组的结构数组时,内存管理
- 为什么其中一个比另一个快得多
- 通知一个类另一个类的更改
- 与可以一个从另一个初始化的类的循环依赖关系
- 将一个对象写入一个对象,该对象带有指向另一个对象的指针,指向 ASCII 文件 (C++)
- C++字符 * 常量与字符 *,为什么有时一个有时另一个
- 遍历数组或从打开的文件中获取字符 - 一个比另一个有什么优势
- 具有两个窗口的C++中的应用程序.任务栏中显示的一个窗口.另一个未显示
- QtScript vs QJSEngine 何时使用一个或另一个
- 创建一个将另一个CMap作为值的CMap
- 根据可用的参数使用一个或另一个重载的创建者
- 从另一个对象调用一个对象的函数时未定义的引用
- 如何制作一个操纵另一个程序的程序ui
- 删除对象(另一个..)时双重释放或损坏
- 在c++中,一个类是否可能有一个包含另一个类的对象的数组?
- 从另一个对象访问一个对象的方法(有更好的方法吗?)
- 创建一个包含另一个对象的对象