标签: c++
请考虑以下代码:
{ std::auto_ptr<Something> p1(pSomePointer); std::auto_ptr<Something> p2(pSomeOtherPointer); ... }
是否有保证在退出示波器时p1析构函数在p1之前被调用?常识说堆栈变量应首先从堆栈顶部销毁,但C ++编译器可以重新排序分配。
答案 0 :(得分:11)
是的,它们按照与施工顺序相反的方式被销毁 - 最后构建的对象将首先被销毁。 C ++保证了这一点。