读书人

关于析构函数解决办法

发布时间: 2013-07-04 11:45:33 作者: rapoo

关于析构函数
1.MFC中定义了一个全局对象,对象不是指针型的,为什么在主窗口关闭时没有执行对象的析构函数呢?(析构函数自己写的,不是默认析构函数)
2.将上述对象改为指针型的,在主对话框关闭时delete下,就可以执行相应的析构函数.理论上讲,就算不是指针型的对象,在其生命周期结束后会主动执行析构函数的,为什么没有执行呢?可能会是什么问题,求大神指教 析构函数 对象 指针 对话框
[解决办法]
全局对象的构造函数是在主函数main()之前调用,析构函数也是在main()之后调用,就是你主窗口退出之后才会调用,你在界面上是看不到的。但是你是自己new的对象,只能说指针是全局的,但是所指的对象是在堆上的,所以只有当你delete时,才会调用析构函数,如果你不主动delete,就存在内存泄露,当然如果整个进程都结束了,操作系统会帮你回收泄露的内存。

读书人网 >C++

热点推荐