#include <iostream.h> class a { public: ~a() { cout << 1; } }; int main() { a ob; ob.~a(); return 0; }
如果错比什么错呢?我已经试过了在Turbo C ++上运行的这段代码,但仍然出现以下错误:
成员标识符应在“ ob.~a();”行
ob.~a();
否则猜输出?
您通常不会显式调用析构函数。当实例超出范围时,将隐式调用它们。
两次调用同一实例的析构函数会导致未定义的行为。
但是,现代编译器不会出现编译器错误。请看这里。可能这是Turbo C ++设计师做出的罕见的明智决定之一,而它却在错误消息中留下了。
在极少数情况下,会显式调用析构函数,例如,如果您维护的是使用new放置创建的实例池。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
点击生成二维码
我来说两句