MFC应用程序,在处理函数中创建的对象,在处理函数结束后该对象会被清除吗?

[复制链接]
查看11 | 回复3 | 2012-11-18 15:23:25 | 显示全部楼层 |阅读模式
会清除,确切地讲是会执行析构函数,但是InitInstance有点细微的区别,我们做个试验新建一个工程1,默认,在默认生成的dlg类中头文件加~CMy1Dlg();cpp文件中加CMy1Dlg::~CMy1Dlg(){ AfxMessageBox(_T("1"));}AfxMessageBox这个函数是弹出一个窗口,等待用户按回车,理论上这个程序运行后关掉时会弹出一个有文字“1”的窗口,但事实是没有弹出,但是没有弹出不代表没有运行析构函数,因为 AfxMessageBox这个函数不同于MessageBox,他在弹窗口的同时会发出“叮”的一声,再试一下,关闭的时候虽然没有弹窗口,但是有“叮”,这就可以理解为运行了析构函数,...
回复

使用道具 举报

千问 | 2012-11-18 15:23:25 | 显示全部楼层
在某一个函数中创建的对象、变量会随着这一个函数的结束而被清除。...
回复

使用道具 举报

千问 | 2012-11-18 15:23:25 | 显示全部楼层
如果是值对象,会在函数声明周期结束自动释放,如果是指针new在堆里的,需要手动delete的。创建CXXDlg对象通常用值对象即可。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行