对象自己释放自己

qwedcxza 2002-09-26 10:44:12

如果在主程序生成一个对象指针,

CObject *obj = new CObject;

然后可能主程序退出了,但不会同时释放对象(因为对象可能有自己的窗口),那么当对象自己的窗口关闭时,它怎么释放自己呢?调用 ~CObject 吗?
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeroweb 2002-09-26
  • 打赏
  • 举报
回复
ljan(冰魂)说得对, 在窗口关闭时,调用delete this;

另外,从程序设计角度来说,不赞成这们作。
可以用一个vector之类的东西把new出来的东西管理起来,在程序退出时一个for循环,逐个删除,最后把vector的item来全部删除。

jinyt 2002-09-26
  • 打赏
  • 举报
回复
智能指针 事实上是个类
她在析构自己的时候,在析构函数 调用了 delete
qwedcxza 2002-09-26
  • 打赏
  • 举报
回复

我还是说的详细点吧,大家看到 OutLook 的样式,建立新邮件时会产生新的窗口,但主窗口关闭的话新邮件窗口仍然存在。

我想搞清楚的是这个新邮件窗口是纯粹的来自一个窗口还是一个新的 CWinApp
yaotang 2002-09-26
  • 打赏
  • 举报
回复
new的东西需要自己释放用delete,delete调用析构函数;
除非你用智能指针,他会自己释放
ljan 2002-09-26
  • 打赏
  • 举报
回复
在窗口关闭时,调用delete this;
stonespace 2002-09-26
  • 打赏
  • 举报
回复
退出程序的时候,用new生成的对象不会自动释放,用new生成的对象只有在delete时候释放。全局变量、静态变量在程序退出的时候自动释放;自动变量在函数返回的时候自动释放。

主程序退出,它生成的所有窗口也会自动关闭。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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