c++ - 我可以使用该类中的函数删除动态分配的类吗?

标签 c++ self-destruction

我正在为游戏编写一个状态管理器。我已经了解了我想要如何做到这一点的大部分逻辑。 我希望状态(将是类)在 StateManager 类的堆栈中进行处理。每个状态都会有暂停函数,并且堆栈将是STL堆栈。

当一个状态完成了它需要做的事情(例如:在暂停屏幕上,用户单击“返回游戏”)时,需要将其从堆栈中删除并删除。我当前的逻辑(不幸的是,我无法测试)是这样的:

国家完成了它的工作。 在它的更新函数中,当它发现它完成时,它会调用一个函数来清理状态。 该函数将处理任何需要绑定(bind)的直接 Unresolved 问题(如果有的话),从状态管理器堆栈中调用 pop 函数,并删除自身。

我要问的是:我可以从类内部删除类吗?

最佳答案

请参阅 C++-FAQ-lite:Is it legal (and moral) for a member function to say delete this?

As long as you're careful, it's OK for an object to commit suicide (delete this).

关于c++ - 我可以使用该类中的函数删除动态分配的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551829/

相关文章:

c++ - 部署 Visual C++ 2008 程序

c++ - S60 3rd ed Emulator 在 Windows 7 中启动后立即终止

Delphi:表单可以自行释放吗?

c - 是否可以用 C 编写自毁程序?

java - 自毁应用

c++ - 我的代码在删除这个时崩溃

c++ - C++ 允许使用 "delete this"吗?

c++ - 清除双端队列指针的最佳方法是什么?

c++ - 如何从成员函数中获取私有(private)数据? C++

c++ - 带有 WIN32 API 的全局热键?