摧毁单个物体

Alo*_*ave 4 c++ oop multithreading design-patterns

破坏单例对象的最佳方法是什么?

案例A:单线程环境
案例B:多线程环境

示例代码段(如果有)将非常有用.

[编辑]我没有特定的用例我只是想了解如果必须使用单身如何正确销毁它.据我了解,从评论中可以
看出有两种情况:1.当没有代码访问它时销毁单例.(使用智能指针,它将负责使用RAII自行销毁对象)
2.在退出时销毁单例该程序无论某些代码是否持有单身人士.(通过在主要退出之前删除实例来明确销毁)

Ant*_*ams 9

不要首先创建它!

说真的,我强烈建议你重新考虑你选择的单例,特别是在多线程环境中.而只需创建一个实例main()并将其传递给调用层次结构,直到需要它.

您可以使用类似的东西shared_ptr来确保对象保持不变,直到没有人再需要它为止.

  • @Als:为什么你要使用单身人士?单例*具体*不允许你销毁它(因为那时你不再有一个实例) (3认同)