相关疑难解决方法(0)

在显式调用时,析构函数被调用两次

我用这段代码在C++中试验析构函数:

#include <iostream>

struct temp
{
    ~temp() { std::cout << "Hello!" << std::endl; }
};

int main()
{
    temp t;
    t.~temp();
}
Run Code Online (Sandbox Code Playgroud)

我看到"你好!" 正在打印两次.不应该调用析构函数释放对象,并且当它超出范围时不应该再次调用析构函数吗?或者还有其他一些概念吗?

(我不打算在实践中这样做.我只是想了解这里发生了什么.)

c++ destructor

22
推荐指数
2
解决办法
7183
查看次数

标签 统计

c++ ×1

destructor ×1