请问:C++析构函数中系统做了哪些工作

liangxin_ok 2006-05-15 02:22:14
小弟在阅读程序时,发现程序运行顺序中,析构函数之前的一个函数作了与析构函数同样的工作。比如:关闭一个应用程序时,ONCLOSE函数作了一连串的工作,在其最后调用一个函数ONCLOSEBOX,其用于检查应用程序对应线程是否未删除,如未删除,则发消息删除。如未获得线程ID,则弹头出对话框说明无效的ID。而在该应用程序的相应的析构函数中作了与ONCLOSEBOX函数相同的工作。我认为在ONCLOSEBOX中已经发消息来删除线程了,如果在析构函数中再来获得线程ID的话,此时为空,会弹出ID无效的对话框的。且我在析构函数中设断点,程序顺利退出,并未被断点阻断。
  我想问下,我分析的对不对。析构函数中系统做了些什么工作呢,为何未运行析构函数呢?为此,会不会出现内存泄露呢?
...全文
155 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mintwlf 2006-05-16
  • 打赏
  • 举报
回复
析构函数是用来删除对象的,在外面好像没有什么函数能实现它的功能吧?(也许是我懂得少)
对象生命结束(无论是正常结束还是异常结束)后被销毁肯定要执行析构函数的。
liangxin_ok 2006-05-16
  • 打赏
  • 举报
回复
是不是我讲的不明白啊,大家怎么不解答呢?恳请大家帮忙,解决这个问题。谢谢了!

15,975

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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