问题描述
- MFC 非模态对话框 关闭 会不会调用变量的析构函数?
-
我有一个子对话框,头文件中声明了变量a。
例如a是一个队列。
使用a的过程中,会不断动态申请新空间。
队列a是有析构函数的。如果是局部变量,局部函数运行完后,队列可以自动调用析构函数。
但上述例子,关闭对话框后,却没有响应a的析构函数。注,我重载了onclose。如果不能自动析构,我打算在里面手动析构a。
但我不太理解,为什么关闭对话框,析构函数不自动调用?
还有要注意什么别的问题……
解决方案
是否调用析构函数取决于这个对话框对象变量的生存周期。如果定义在函数里,函数退出就会调用。如果定义在类成员里,这个对象析构后会调用。如果是全局变量,程序退出才会。
解决方案二:
如果是指针类型,那么调用delete的时候会调用。所以建议你用指针。
时间: 2024-10-02 22:53:45