C++自动电话析构的所有地方的变量框在相反的顺序无论是否框退出正常的(控制下落通过)或是一个例外抛出。

看起来喜欢这个词 堆退 仅适用于后者。怎么是前进程(正常出口的方框)被称为关于破坏地方的变量?

有帮助吗?

解决方案

对象是自动毁灭的时候它"超出范围"。这可能被称作为"自动存储回收",但实际上指的是垃圾收集(有若干文件,用这一词语在其名称中使用的术语的意思的垃圾收集)。当它被用来确保适当的配对的公开/闭,锁,或其他形式的资源获取与他们的适当的释放,那么它被称为设计图案的 资源的获取是初始化(RAII), ,这是有些具有讽刺意义的主要方面RAII不是资源的初始化或收购,而是它的毁灭。

其他提示

堆栈退绕发生在这两种情况下,它只是正常执行下堆栈退绕仅当执行方法返回(或块退出)主叫方法(或块)的情况下。局部变量是在栈中分配,所以他们在分配相反的顺序被清理,这是这个过程被称为平仓。那比任何处理其他类型的数据,你会在一个LIFO结构存储不同 - 例如撤消,重做。

当一个异常被抛出的处理程序将通过通过零种或更多个方法展开堆栈,直到它找到一个可以捕获该异常,或者直到它达到堆栈的顶部,在该点处未处理的异常处理程序将被称为

这似乎是惯例来仅使用术语堆栈中的异常处理的情况下展开,但它是在每种情况下出现的相同的过程。其中,由于方法退出堆栈退绕被称为返回特定的情况下,似乎并没有被命名时的代码范围的退出块会发生什么的任何约定。

当它的范围之局部变量被破坏。也许过程被称为像“的范围走出去”?

我不知道有这个名字。堆栈变量的这样的自动化,对他们没有一个人烦恼,永远,甚至没有足够的起名为这个自动清理过程。

称它为 “的范围走出去”,我想。

我一直听说它读作“的范围走出去”或更准确“的auto变去的范围了。”

如果你所要求的是如何调用的方法实际上是在机器代码实现,我会说这将取决于所使用的调用约定

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top