http://blog.csdn.net/liuzhi1218/article/details/6993135循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include #include #include c...
分类:
其他好文 时间:
2015-02-10 15:10:00
阅读次数:
121
std::auto_ptr很多的时候并不能满足我们的要求,比如auto_ptr不能用作STL容器的元素。boost的smart_ptr中提供了4种智能指针和2种智能指针数组来作为std::auto_ptr的补充。
shared_ptr:使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全.
weak_ptr:weak_ptr 是 shared_ptr 的观察员...
分类:
其他好文 时间:
2015-01-29 09:22:31
阅读次数:
288
对share_ptr,属于强引用型的智能指针。内部通过引用计数实现对对象的管理,在引用计数为0时,自动释放对象。使用share_ptr的缺点是:会造成对象的循环引用,导致对象永远无法释放,比如:Share_ptr可以在多线程中使用,确保指针指向的对象是有效的。Weak_ptr是弱引用性的智能指针。W...
分类:
其他好文 时间:
2014-12-18 22:13:05
阅读次数:
274
template class shared_ptr;template class weak_ptr;// This class is an internal implementation detail for shared_ptr.class SharedPtrControlBlock {tem.....
分类:
其他好文 时间:
2014-11-25 23:16:19
阅读次数:
207
智能指针是为了便于管理动态内存,能够自动管理释放所指向的对象。智能指针共有三种:1、shared_ptr允许多个指针指向同一个对象;2、unique_ptr独占所指向的对象;3、weak_ptr是一个伴随类,它是一种弱引用,指向shared_ptr所管理的对象。这三种类型都定义在memory头文件中...
分类:
编程语言 时间:
2014-11-08 16:36:26
阅读次数:
169
shared_from_this()是enable_shared_from_this的成员 函数,返回shared_ptr。首先需要注意的是,这个函数仅在shared_ptr的构造函数被调用之后才能使 用。原因是enable_shared_from_this::weak_ptr并不在构造函数中设置,...
分类:
其他好文 时间:
2014-10-28 23:57:18
阅读次数:
276
weak_ptr是辅助shared_ptr的智能指针。就像它的名字一样,是个“弱”指针;仅有几个接口,仅能完成很少工作,来辅助shared_ptr...
分类:
其他好文 时间:
2014-09-29 22:38:41
阅读次数:
196
这一章暂时没写完,先留着以后再写。在C++程序中,程序员可以给手动开辟内存,但是这块内存需要手动释放,不便管理,因此新标准提供智能指针类型来管理动态对象。它负责自动释放所指向的对象。shared_prt允许多个指针指向同一个对象unique_ptr独占所指向的对象weak_ptr是一个弱引用,指向s...
分类:
编程语言 时间:
2014-09-09 21:28:39
阅读次数:
413
weak_ptr示例/*// 使用shred_ptr的主要原因就是避免关注指针指向的资源// 只能指针将自动释放与不再需要的对象的相关资源// 但是某些情况下,这种却不是我们需要的。// 比如 循环引用.两个对象都引用对方。// 又或者 分享一个对象 但是不占有该对象/...
分类:
编程语言 时间:
2014-08-31 18:35:21
阅读次数:
261
12.20 编写程序,逐行读入一个输入文件,将内容存入一个StrBlob中,用一个StrBlobPtr打印出StrBlob的每个元素。StrBlob.h#ifndef STRBLOB_H#define STRBLOB_H#include#include#include#includeusing na...
分类:
其他好文 时间:
2014-08-19 22:06:45
阅读次数:
277