记录多少个指针指向同一个对象,为0时释放对象 use_count()
int main() {
shared_ptr<int> p;
p = make_shared < int> (100);
//shared_ptr<int> p {make_shared < int>(100)};
shared_ptr<int> q{ new int(99) };
cout << *p << *q << endl;
system("pause");
return 0;
}
可以通过裸指针指向智能指针指向的内容,但智能指针被全部释放后 裸指针就变成了野指针
reset相当于重新指向
unique独占某个内容 销毁或者重新指向时会销毁资源
把智能指针和资源解绑
不能直接传指针 只能传指向的资源 或者传指针的引用 或者用move解绑
weak_ptr
shared_ptr在环形对象时 会使得计数不能为0,导致内存不能被释放