变量生命周期

时间:2021-09-14 14:44:57
在一个函数内创建一个类的实例。当函数执行完成后,为什么类的析构函数没有被执行呢?

7 个解决方案

#1


函数执行完了,类的实例还在

#2


我是在函数内部创建的对象,按理说应该是局域变量,执行完了就销毁了吧?

#3


由gc决定的唉

垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。

#4


那就是不归程序管了?能不能在函数执行完成后,调用类的析构函数?

#5


不能,程序员无法控制何时调用析构函数

http://msdn.microsoft.com/zh-cn/library/66x5fx1b(VS.80).aspx

#6


MARK!

#7


我觉得不用考虑这种问题,等以后成了专家再想也不迟。

#1


函数执行完了,类的实例还在

#2


我是在函数内部创建的对象,按理说应该是局域变量,执行完了就销毁了吧?

#3


由gc决定的唉

垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。

#4


那就是不归程序管了?能不能在函数执行完成后,调用类的析构函数?

#5


不能,程序员无法控制何时调用析构函数

http://msdn.microsoft.com/zh-cn/library/66x5fx1b(VS.80).aspx

#6


MARK!

#7


我觉得不用考虑这种问题,等以后成了专家再想也不迟。