用法:
1 weak_ptr是share_ptr的观察者,打破递归的依赖关系,旁观一个共享资源而不能拥有所有权,或者为了避免悬空指针
2 weak_ptr 不对它所观察的指针提供重载的 operator* 和 operator->,所以要访问观察指针,需要转换回share_ptr
3 weak_ptr的expired()方法用于检测观察的share_ptr是不是还是有效
4 weak_ptr是share_ptr的观察者的原理是:两个指针共享引用计数的地址指针,当引用计数为0时,但引用计数的引用计数还不是0
该指针主要作用是旁观一个资源而不能拥有所有权;