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

关于智能指针

时间:2014-12-18 22:13:05      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   使用   sp   div   2014   

对share_ptr,属于强引用型的智能指针。内部通过引用计数实现对对象的管理,在引用计数为0时,自动释放对象。使用share_ptr的缺点是:会造成对象的循环引用,导致对象永远无法释放,比如:

Share_ptr可以在多线程中使用,确保指针指向的对象是有效的。

 

Weak_ptr是弱引用性的智能指针。Weak_ptr不对造成对象的引用技术的增加。因此不会造成对象的循环引用,weak_ptr可以通过引用计数或者 成员函数expired来判断对象是否已经释放。在访问对象时。但是在使用时需要把weak_ptr转换为share_ptr指针比如:

 shared_ptr<string> sp (new string("code"));
   cout<<*sp<<endl;
   weak_ptr<string> wp = sp;
   cout<<wp.use_count()<<endl;
   cout<<wp.lock()->c_str()<<endl;

   shared_ptr<string> tempsp(wp);
   cout<<wp.use_count()<<endl;
   cout<<*tempsp<<endl;

bubuko.com,布布扣

关于智能指针

标签:style   blog   http   ar   color   使用   sp   div   2014   

原文地址:http://www.cnblogs.com/xgcode/p/4172702.html

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