有什么好办法让一个对象在所有对象都析构后才析构

20040216 2006-11-10 02:54:34
也就是Singletons的析构问题
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenneth_lueng 2006-11-10
  • 打赏
  • 举报
回复
用定义全局变量的方法,全局变量是最早构造,在程序一开始运行时就进行构造的
并且是最晚析构的……

也可以用new的方法来调用构造函数 new的过程是要调用构造函数的
在释放内存时调用 delete
delete一个指针,就是调用这个指针类型的析构函数,这样就可以控制析构的顺序了
0黄瓜0 2006-11-10
  • 打赏
  • 举报
回复
把所有全局对象再包装为一个全局对象,先构造的会后析构,但访问要麻烦点。瞎想的。
lann64 2006-11-10
  • 打赏
  • 举报
回复
用{ }控制,把所有对象定义到{ }里面,你的对象留在外面。
jixingzhong 2006-11-10
  • 打赏
  • 举报
回复
引用计数 的思想来控制行不 ?
20040216 2006-11-10
  • 打赏
  • 举报
回复
c++设计新思维里面的我看了,太麻烦了
shootingsyh 2006-11-10
  • 打赏
  • 举报
回复
一般Singletons使用function的static实现,这样可以保证他在程序结束时析构,但是这样的话无法控制各个不同的singletons之间的析构顺序,可以使用atexit函数注册一个退出时调用的函数,然后在堆上动态分配Singleton,在atexit注册的那个函数中释放……具体参见<c++设计新思维〉我也记不太清楚了,它里面有非常详细的讨论
Jim_King_2000 2006-11-10
  • 打赏
  • 举报
回复
用类工厂,然后把所有对象都放在一个链表里面,然后链表头最后析构不就完了?不过不知道lz为何要这样?

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧