智能指针的设计初衷是:
     C++中没有提供自动回收内存的机制,每次new对象之后都需要手动delete。稍不注意就memory leak。
智能指针可以解决上面遇到的问题。

C++中常见的智能指针包括(共七种):
     std::auto_ptr
     boost::scoped_ptr
     boost::shared_ptr
     boost::intrusive_ptr
     boost::scoped_array
     boost::shared_array
     boost::weak_ptr
    其实,智能指针并不是指针,它仅仅是一个栈对象而已。
在栈对象的生命周期结束时,智能指针调用析构函数释放其管理的堆内存。
所有的智能指针都重载了'operator->'操作符,用来返回其管理对象的引用。从而可以
执行所管理对象的一些操作。

两个方法:
     - get()
          访问智能指针包含的裸指针引用
     - reset()
          若传递参数为空或NULL 则智能指针会释放当前管理的内存。
          若传递参数为一个对象 则智能指针会释放当前管理的内存,管理新传入的对象。

posted on 2019-01-18 20:54  柠檬檬檬  阅读(89)  评论(0编辑  收藏  举报