- weak_ptr是为了解决shared_ptr的循环引用的问题
- weak_ptr没有引用计数, 只是有一个获取资源的lock()函数
template <class T>
class weakPtr{
public:
weakPtr(const sharedPtr& shPtr = nullptr)
:_shPtr(&shPtr){
;
}
//提供一个lock,来获取shared_ptr
sharedPtr* Lock(){
if (*(_shPtr->_ptrCount) > 0){
return _shPtr;
}
else
{
return nullptr;
}
}
private:
sharedPtr<T>* _shPtr;
};