https://en.cppreference.com/w/cpp/memory/unique_ptr/reset
https://en.cppreference.com/w/cpp/memory/shared_ptr/reset
调用reset()之后
#include<memory>
#include<iostream>
class Foo{
int a;
};
int main(int argc,char* argv[])
{
std::shared_ptr<Foo> foo_ptr = std::make_shared<Foo>();
if(foo_ptr)
{
foo_ptr.reset();
std::cout<<(foo_ptr ?"foo_ptr is not nullptr":"foo_ptr is nullptr")<<std::endl;
}
else
{
std::cout<<"never reach here."<<std::endl;
}
std::unique_ptr<Foo> foo2_ptr = std::make_unique<Foo>();
if(foo2_ptr)
{
foo2_ptr.reset();
std::cout<<(foo2_ptr ?"foo2_ptr is not nullptr":"foo2_ptr is nullptr")<<std::endl;
}
else
{
std::cout<<"never reach here."<<std::endl;
}
return 0;
}
运行结果