CButton* b1 = new CButton; 当b1不用时需不需要删除什么?

aoyihuashao 2009-11-17 02:28:04
CButton* b1 = new CButton;
是在cdialog里面,动态生成的一个按钮,

当这个cdialog关掉后,b1会不会自动回收?还是需要自己回收?

如果自己回收的话,怎么处理比较好?
...全文
122 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xpljj502 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 aoyihuashao 的回复:]
如果根据ID释放控件资源,各位看看,这样行不?
C/C++ code
CButton* b1;
b1= (CButton*)GetDlgItem(int nID );
delete b1;
[/Quote]
可以。
aoyihuashao 2009-11-17
  • 打赏
  • 举报
回复
如果根据ID释放控件资源,各位看看,这样行不?

CButton* b1;
b1 = (CButton*)GetDlgItem( int nID );
delete b1;
xpljj502 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 aoyihuashao 的回复:]
由于我在系统里面多次调用了
CButton* b1 = new CButton;

也就是生成了多个CButton,
记录下来的是这些CButton的IDC,那该怎么处理?
[/Quote]
具体情况具体分析,总之就是在确定以后用不到的情况下尽早释放掉。。。免得以后忘记了。。
hongya6088 2009-11-17
  • 打赏
  • 举报
回复
一个new(new [])对应一个delete(delete[])
jyh_baoding 2009-11-17
  • 打赏
  • 举报
回复
好好学习啊
aoyihuashao 2009-11-17
  • 打赏
  • 举报
回复
由于我在系统里面多次调用了
CButton* b1 = new CButton;

也就是生成了多个CButton,
记录下来的是这些CButton的IDC,那该怎么处理?
bragi523 2009-11-17
  • 打赏
  • 举报
回复
自己new的东西都要自己delete
xpljj502 2009-11-17
  • 打赏
  • 举报
回复
在cdialog析构函数里delete掉
  • 打赏
  • 举报
回复
delete[] b1;
这不是鸭头 2009-11-17
  • 打赏
  • 举报
回复
需要
new和delete总是成对出现
zyq5945 2009-11-17
  • 打赏
  • 举报
回复
窗口和窗口类实例不是一个概念,窗口类实例和窗口的生存周期是不一致的。用new分配的变量必须用delete释放,否则会造成内存泄露。
cdialog关掉后,就是说父窗口destroy,其上的控件也会在这之前destroy,但是变量CButton* b1还是存在的,要是不用delete释放变量CButton* b1,程序退出的时候系统也会清理的,但最好还是自己养成一个好习惯,自己delete。
fishion 2009-11-17
  • 打赏
  • 举报
回复
用了new就要用delete
taihangjushi 2009-11-17
  • 打赏
  • 举报
回复
不错,谢谢,学习一下

16,471

社区成员

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

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

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