【发布时间】:2013-04-22 08:14:54
【问题描述】:
编译器可以进行很多优化(比如内联一些函数),我有点怀疑在我的程序中调用函数后并非所有分配给局部变量的内存都被清除(基于 OS X 的系统监视器),这就是我要问的原因:标准是否保证局部变量的所有析构函数都会在它们超出范围时被准确地调用?
【问题讨论】:
-
“清除”我假设您的意思是 已发布 回到运行时。是的,析构函数将被解雇。你在这些析构函数中做什么是任何人都猜到的。
-
当你说“内存分配”时,如果它是由构造函数分配并由析构函数释放,那么分配的内存将被释放。
-
你可以稍微怀疑一下,但我很确定这样的错误会在很早的阶段就被发现,早在编译器发布之前。
标签: c++ memory-management destructor