【发布时间】:2014-10-27 15:33:42
【问题描述】:
在析构函数的最后一行,我有一条诊断类型消息,它采用printf-like 形式:
"object destroyed at %p", this
我担心this 在这种情况下的定义有多好。
我应该有这样的保留吗?行为是否明确?
【问题讨论】:
-
当它从析构函数返回时会被销毁,所以它应该仍然有效
-
应该还是是?如果我介绍 UB,我会遇到很多麻烦。
-
有效,你可以自己测试一下
-
在我的平台上确实可以。我可以同时测试
i = ++i。但这根本不是定义行为的指南。 -
这取决于析构函数是否为
non-trivial,参见相关:stackoverflow.com/questions/8611468/…。在普通析构函数的情况下,当您从析构函数返回时,对象的生命周期结束。如果一进入body就发生了,那么你将无法释放成员资源
标签: c++