码迷,mamicode.com
首页 > 其他好文 > 详细

读书笔记

时间:2017-04-06 15:55:07      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:amp   java   gis   观察者模式   ptr   cti   bin   析构函数   创建   

可能延长对象的生命期:

  shared_ptr是强引用,只要有一个指向x对象的shared_ptr存在,该对象就不会析构。

  比如java的观察者模式中如果主题没有主动去unrigister一个observer,那么那个observer永远不会被释放。

  比如boost::bind会把实参拷贝一份,样例代码如下:

    class Foo{void doit();};

    shared_ptr<Foo> pFoo(new Foo);

    boost::function<void()> func = boost::bind(&Foo::doit, pFoo);

    这里的func对象就持有一份shared_ptr<Foo>的拷贝,可能延长倒数第二行创建的对象的生命期。

析构动作在创建时被捕获,这意味着: 

  虚析构函数不是必需的了;

  shared_ptr<void>可以持有任何对象,而且能安全释放;

  

读书笔记

标签:amp   java   gis   观察者模式   ptr   cti   bin   析构函数   创建   

原文地址:http://www.cnblogs.com/lthb/p/6673463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!