这个使用销毁的c ++代码有什么问题?

沙珊克什·阿帕德(Shashankesh Upadhyay)
#include <iostream.h>
class a {
public:
    ~a() { cout << 1; }
};
int main()
{
    a ob;
    ob.~a();
    return 0;
}


如果错比什么错呢?
我已经试过了在Turbo C ++上运行的这段代码,但仍然出现以下错误:

成员标识符应在“ ob.~a();”行


否则猜输出?

一切都在流动

您通常不会显式调用析构函数。当实例超出范围时,将隐式调用它们。

两次调用同一实例的析构函数会导致未定义的行为。


但是,现代编译器不会出现编译器错误。请看这里可能这是Turbo C ++设计师做出的罕见的明智决定之一,而它却在错误消息中留下了。


在极少数情况下,会显式调用析构函数,例如,如果您维护的是使用new放置创建的实例池

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章