繁体   English   中英

是否可以保证销毁C ++堆栈变量的顺序

[英]Is there any guarantee for the order in which C++ stack variables are destroyed

请考虑以下代码:

{
  std::auto_ptr<Something> p1(pSomePointer);
  std::auto_ptr<Something> p2(pSomeOtherPointer);
  ...
}

是否保证在退出示波器时p1析构函数将在p1之前被调用? 常识说堆栈变量应首先从堆栈顶部销毁,但C ++编译器可以重新排序分配。

是的,它们按照与施工顺序相反的方式被摧毁 - 最后建造的物体将首先被摧毁。 C ++保证了这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM