這是不確定的行爲?如果指針指向任何地方,它如何刪除分配的資源?將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;' –