DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2014年9月24日

摘要: 近期在补充和梳理C++方面的知识的时候,遇到了WeakPtr这个概念和用法,不甚明白,Google出了一堆文字,包括Boost的shared_ptr和weak_ptr的比较,以及其他一些博客里面给的例子以及解释。其中有一个是这样解释的,原文大意:在C++的weak_ptr里面,有两类指针,一类是拥有... 阅读全文
posted @ 2014-09-24 10:04 DoubleLi 阅读(488) 评论(0) 推荐(0)

摘要: 智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢?指针与内存说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了内存,用完后由系统去负责释放.如果是自定义类型,就会自动的去调用你的析构函数.但如果是在堆(heap)中分配了内存,也就是用malloc或者new.那只能... 阅读全文
posted @ 2014-09-24 09:59 DoubleLi 阅读(598) 评论(0) 推荐(0)

摘要: 前面讲到auto_ptr有个很大的缺陷就是所有权的转移,就是一个对象的内存块只能被一个智能指针对象所拥有.但我们有些时候希望共用那个内存块.于是C++ 11标准中有了shared_ptr这样的智能指针,顾名思义,有个shared表明共享嘛.所以shared_ptr类型的智能指针可以做为STL容器的元... 阅读全文
posted @ 2014-09-24 09:58 DoubleLi 阅读(490) 评论(0) 推荐(0)

摘要: 我们知道auto_ptr通过复制构造或者通过=赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如我们不希望多个内存块被多个智能指针对象共享,同时又不会像auto_ptr那样不知不觉的就让原来的au... 阅读全文
posted @ 2014-09-24 09:57 DoubleLi 阅读(1096) 评论(0) 推荐(0)