C++ 11提出了弱引用的概念,与strong reference(shared_ptr)相对的一个概念。使用的类型为:boost::weak_ptr. weak_ptr首先是一个模板,其次是无法直接访问对象,使用时必须将其转换成shared_ptr,最后这种指针...
分类:
编程语言 时间:
2015-05-19 13:18:13
阅读次数:
188
auto_ptr智能指针:其析构函数自动对其所指对象调用delete
若对象auto_ptr不指向某一资源,它会设为null
shared_ptr具有相同功能
但是多个shared_ptr对象能同时指向同一资源
注意:...
分类:
其他好文 时间:
2015-05-18 23:02:27
阅读次数:
160
以对象管理资源之后,某些资源不允许被复制,这时对象应该被private声明,为了资源在最后一次使用之后被释放应该使用shared_ptr并且给出对应的删除器:
注意:...
分类:
其他好文 时间:
2015-05-18 23:02:13
阅读次数:
187
l unique_ptr
:不允许多个指针共享资源,可以用标准库中的move函数转移指针
l shared_ptr
:多个指针共享资源
l weak_ptr
:可复制shared_ptr,但其构造或者释放对资源不产生影响...
分类:
编程语言 时间:
2015-05-18 22:57:19
阅读次数:
160
前言 在上篇文章中博主尝试了在OpenWrt上用C++写个简单的程序测试了一下,可行。 博主这两天又了解了C++11,里面的新特性非常令我兴奋。比如shared_ptr, lambda, auto都是非常有用的特性。[点击了解C++11] 今天,...
分类:
编程语言 时间:
2015-05-18 16:59:58
阅读次数:
167
??
shared_ptr是一个引用计数智能指针,用于共享对象的所有权。它可以从一个裸指针、另一个shared_ptr、一个auto_ptr、或者一个weak_ptr构造。还可以传递第二个参数给shared_ptr的构造函数,它被称为删除器(deleter)。删除器用于处理共享资源的释放,这对于管理那些不是用new分配也不是用delete释放的资源时非常有用。shared_ptr被创建后,就可以...
分类:
编程语言 时间:
2015-05-05 12:35:00
阅读次数:
179
//C++智能指针模板类复习
#include
#include
using namespace std;
//智能指针用于确保程序不存在内存和资源泄漏且是异常安全的。
//C++98中提供了auto_ptr,C++11摒弃了auto_ptr,并提出了unique_ptr 、shared_ptr、weak_ptr
void show1()
{
int* p = ne...
分类:
编程语言 时间:
2015-04-27 21:57:40
阅读次数:
247
1) 观察者模式定义略,各种设计模式的书上都有定义。2) 观察者模式一般实现观察者模式一般实现,都是“被观察者”保存一个“观察者”的列表,循环这个列表来通知“观察者”。代码,其中使用了boost的智能指针shared_ptr:[cpp]view plaincopy#include#include#i...
分类:
其他好文 时间:
2015-04-23 23:10:45
阅读次数:
226
导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等....
分类:
编程语言 时间:
2015-04-23 17:05:26
阅读次数:
192
1.9 再论shared_ptr 的线程安全虽然我们借shared_ptr 来实现线程安全的对象释放,但是shared_ptr 本身不是100% 线程安全的。它的引用计数本身是安全且无锁的,但对象的读写则不是,因为shared_ptr 有两个数据成员,读写操作不能原子化。根据文档11,shared_...
分类:
编程语言 时间:
2015-04-22 19:58:04
阅读次数:
137