sha*_*oth 8 c++ destructor stack-unwinding
C++自动地调用以相反的顺序块中所有的局部变量的析构函数不管块是否正常结束(控制下落通过)或抛出异常.
看起来堆栈展开只适用于后者.前一个过程(块的正常退出)如何被称为破坏局部变量?
当对象"超出范围"时,对象会自动被破坏.这可以被称为"自动存储回收",但实际上是指垃圾收集(有几篇论文用这句话在他们的名字使用这个术语指的垃圾收集).当它用于确保正确配对打开/关闭,锁定/解锁或其他形式的资源获取及其适当的版本时,它被称为资源获取的设计模式是初始化(RAII),这有点讽刺RAII的主要方面不是资源初始化或获取,而是它的破坏.