这是不确定的行为?如果指针指向任何地方,它如何删除分配的资源?将unique_ptr资源设置为nullptr后,它将如何释放?
// Example program
#include <iostream>
#include <memory>
class A {
public:
A() {std::cout << "ctor"<<std::endl;};
~A(){std::cout << "dtor"<<std::endl;};
};
int main()
{
std::unique_ptr<A> ptr(new A);
ptr = nullptr;
return 0;
}
输出:
ctor
dtor
也许有人故意创建这种方式来解决一些问题呢?
嗯wut ??????? –
这里调用析构函数:'ptr = nullptr;' –