/*
C++新特性 weak_ptr的提出及解决循环引用的思路
*/
#include <memory>
/*
问题1:
为什么会存在强弱指针计数
弱指针不增加强指针的引用次数 ,弱指针使用前需要lock()增强,强指针引用次数增加
weak_ptr_uses_count
一般结合强智能指针使用,它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理
的是强引用的 shared_ptr. weak_ptr只是提供了对管理对象的一个访问手段;weak_ptr
设计的目的是为配合 shared_ptr 而引入的一种智能指针来协助 shared_ptr 工作, 不会
引起引用记数的增加或减少。
问题2
强弱指针计数的用途是什么,具体代码是什么
*/
int main()
{
std::shared_ptr<int> sptr(new int(3));
std::shared_ptr<int> sptr2(new int(3)); //两个指针指向通个指针
std::weak_ptr<int> wptr = sptr;
if (!wptr.expired()) //判断是否指向强指针
{
std::shared_ptr<int > sptr3 = wptr.lock(); //将弱指针转化为强指针
}
return 0;
}