c++ - 什么时候适合使用 "delete this"?

标签 c++ memory-management

<分区>

Possible Duplicate:
Should objects delete themselves in C++?

在我的应用程序中,我正在创建许多“拥有自己”的对象 - 在创建它们并被告知“离开”之后,只有对象本身才能确定何时应该删除它。

例如,如果我正在编写游戏,我可能有多个 Enemy 对象。只有 Enemy 对象知道它什么时候应该死。

因此,我最终在 Enemy 对象的一些成员函数中使用了 delete this。这是不好的形式吗?这是我应该避免的事情吗?如果是,处理这种情况的正确方法是什么?

最佳答案

需要注意的是,如果过多的成员函数具有自删除作为副作用,很容易在删除后不小心使用对象的引用。

避免这种情况的一种方法是延迟删除 - 也就是说,将对象放在列表中,然后从游戏的主循环中,在一个 tick 的开始/结束时删除该列表中的所有内容。

关于c++ - 什么时候适合使用 "delete this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1041362/

相关文章:

c++ - 如何检查类的 "this"指针在回调函数中是否仍然有效?

c++ - 删除空指针是否安全?

c++ - 将 C/C++ 套接字传递到 EM_ASM 以用作 Emscripten 中的 websocket

delphi - 在delphi 7中缓冲数据

java - Tomcat 内存使用(PermGen)

c++ - 如何从 MagickWand 对象(C 语言)获取 libtiff TIFF 对象?

iOS - 在使用成功 block 进行异步网络调用时查看 Controller 内存管理

c# - 内存不足异常

c# - System.LocalDataStoreElement[] 内存分配

c++ - 静态链接,在 Windows 下正确工作的 readline 库?