C++11目前已经引入了unique_ptr, shared_ptr, weak_ptr等智能指针以及相关的模板类enable_shared_from_this等。被广泛使用的是shared_ptr,...
分类:
编程语言 时间:
2016-09-06 17:00:25
阅读次数:
269
智能指针——shared_ptr 为了更容易地使用动态内存,新的标准提供了智能指针来管理动态对象。智能指针的行为类似常规指针,重要的区别是它负责自动释放指向的对象。 智能指针的使用方式与普通指针类似。解引用一个智能指针返回它指向的对象。 最安全的分配和使用动态内存的方法是调用一个名为make_sha ...
分类:
其他好文 时间:
2016-09-04 11:39:10
阅读次数:
200
Item 14-在资源管理中小心的copying行为(Think carefully about copying behavior in resource-managing classes)
auto_ptr和trl::shared_ptr表现在heap_based资源上,然而并非所有资源都是heap_based,这样我们就需要建立自己的资源管理类。
例如:假设我们使用C API(Ap...
分类:
编程语言 时间:
2016-08-24 13:14:15
阅读次数:
170
共享指针 这个智能指针命名为boost::shared_ptr,定义在boost/shared_ptr.hpp里。智能指针boost::shared_ptr基本上类似于boost::scoped_ptr。关键不同之处在于boost::shared_ptr不一定要独占一个对象。它可以和其他boost: ...
分类:
其他好文 时间:
2016-08-13 20:55:42
阅读次数:
251
条款17:以独立语句将New对象放置入智能指针。 1、以独立语句将newed对象放置入智能指针内,如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄露。 void name(shared_ptr<管理对象类型>(new 管理对象类型),其它函数)),New被分配内存不一定马上放入管理对象,因为 ...
分类:
编程语言 时间:
2016-07-31 17:43:30
阅读次数:
151
1、weak_ptr(1)、weak_ptr是为了配合shared_ptr而引入的智能指针,它更像是shared_ptr的一个助手,它不具有普通指针的行为,没有重载operator*和->,它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使用情况。(2)、2个重要接口:boolexpired()const;//判断是..
分类:
其他好文 时间:
2016-07-31 16:06:26
阅读次数:
168
1、shared_ptr中的px出现原因方便对其数据空间的管理,取值和获取地址将极大的方便我们的操作。2、解决析构函数避免内存空间的泄漏。new出来的空间都没有释放掉!释放拥有权靠的是引用计数。~shared_count(){
if(pi){//判断所指父类是否为空
pi->release();//释放new出来的..
分类:
其他好文 时间:
2016-07-31 08:01:46
阅读次数:
402
1、共享性智能指针(shared_ptr)引用计数型指针shared_ptr是一个最像指针的“智能指针”,是boost.smart_ptr库中最有价值,最重要,也是最有用的。shared_ptr实现的是引用技术型的智能指针,可以被拷贝和赋值,在任意地方共享它,当没有代码使用(此时引用计数为0)它才删除被动态..
分类:
其他好文 时间:
2016-07-30 22:48:26
阅读次数:
300
接口:http://zh.cppreference.com/w/cpp/memory/shared_ptr 这个网站比较好,概念比较简洁 如何使用:http://www.cnblogs.com/TianFang/archive/2008/09/19/1294521.html boost::share ...
分类:
其他好文 时间:
2016-07-30 16:34:12
阅读次数:
105
动态内存与智能指针 在C++中, 动态内存用 new来分配空间并返回一个指向该对象的指针 用delete来销毁。 由于手动的对动态内存进行操作容易出现问题。所以新的标准库提供了两种智能指针。 智能指针的行为类似于常规指针。区别在于他负责自动释放所指对象。 shared_ptr : 允许多个指针指向同 ...
分类:
编程语言 时间:
2016-07-09 01:53:02
阅读次数:
206