赶圩归来阿理理
2016-05-24 11:04
采纳率: 0%
浏览 2.2k

MFC 非模态对话框 关闭 会不会调用变量的析构函数?

我有一个子对话框,头文件中声明了变量a。
例如a是一个队列。
使用a的过程中,会不断动态申请新空间。
队列a是有析构函数的。

如果是局部变量,局部函数运行完后,队列可以自动调用析构函数。
但上述例子,关闭对话框后,却没有响应a的析构函数。

注,我重载了onclose。如果不能自动析构,我打算在里面手动析构a。

但我不太理解,为什么关闭对话框,析构函数不自动调用?
还有要注意什么别的问题……

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2016-05-24 11:14

    是否调用析构函数取决于这个对话框对象变量的生存周期。如果定义在函数里,函数退出就会调用。如果定义在类成员里,这个对象析构后会调用。如果是全局变量,程序退出才会。

    打赏 评论
  • threenewbee 2016-05-24 11:14

    如果是指针类型,那么调用delete的时候会调用。所以建议你用指针。

    打赏 评论
  • Eleven 2016-06-08 07:45

    要看你的a作用域范围,作用在哪个范围内,即变量的生命周期~

    打赏 评论

相关推荐 更多相似问题