3.6 weak_ptr
weak_ptr是为配合shared_ptr而引入的一种智能指针,它更像是shared_ptr的一个助手而不是智能指针,因为它不具有普通指针的行为,没有重载operator*和->。它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使用情况。
3.6.1 类摘要
weak_ptr的类摘要如下:
- template<class T> class weak_ptr
- {
- public:
- weak_ptr();
-
- template<class Y> weak_ptr(shared_ptr<Y> const & r);
- weak_ptr(weak_ptr const & r);
-
- ~weak_ptr();
-
- weak_ptr & operator=(weak_ptr const & r);
-
- long use_count() const;
- bool expired() const;
- shared_ptr<T> lock() const;
-
- void reset();
- void swap(weak_ptr<T> & b);
- };
weak_ptr的接口很小,正如它的名字,是一个"弱"指针,但它能够完成一些特殊的工作,足以证明它的存在价值。