做了个小实验,代码如下:
int main()
{
int* p = new int(100);
shared_ptr<int> p1(p);
shared_ptr<int> p2 = p1;
cout<<"p1 引用数(1):"<<p1.use_count()<<endl; // 打印2
p1.reset();
cout<<"p1 引用数(2):"<<p1.use_count()<<endl; // reset了一次之后就打印0了,为什么会是0,如果是0, p应该被释放了才对啊
cout<<*p<<endl; // 打印 100
system("pause");
return 0;
}
望有大神给我解惑