1 概述
从C++11开始C++语言越来向现代化语言转变。尤其是智能指针的引入,代码中不会直接使用new/delete了。C++11智能指针有三种分别是:shared_ptr,weak_ptr 和unique_ptr 。
2 类图

3 共享指针(shared_ptr)
接口函数:
- shared_ptr 构造函数
 - ~shared_ptr 析构函数
 - operator= 赋值运算符重载
 - swap 交换两个指针
 - reset 重置指针
 - get 返回存储的指针
 - operator* 操作符重载,返回存储指针指向对象,相当于调用get()
 - operator-> ->操作符重载,执行对象成员
 - use_count 指针被使用个数
 - unique 返回存储指针是否唯一,如果存储指针没有被其它对象共享,则是唯一的。
 - operator bool bool操作符重载,判断存储指针是否不为空。
 - owner_before 返回是否按照严格的基于弱所有者的顺序将对象放在x之前。
 
4 弱指针(weak_ptr)
接口函数
- weak_ptr 构造函数
 - ~weak_ptr 析构函数
 - operator= 赋值运算符重载
 - swap 交换两个指针
 - reset 重置指针
 - use_count 指针被使用个数
 - expired 判断指针是否过期
 - lock 返回共享指针,如果过期返回为空共享指针
 - owner_before 返回是否按照严格的基于弱所有者的顺序将对象放在x之前。
 
5 唯一指针(和unique_ptr)
接口函数:
- unique_ptr 构造函数
 - ~unique_ptr 析构函数
 - operator= 赋值运算符重载
 - get 返回存储的指针
 - release 不该管理存储指针,并返回存储指针
 - reset 重置指针
 - swap 交换两个指针
 



















