在\trunk\talk\base\scoped_ptr.h文件中的scoped_ptr_impl模板类的reset方法,由于scoped_ptr_impl类的内部定义结构体Data继承自类模板参数D(代表的是指针析构类),并声明成员变量Data data_;Data data_;当调用reset方 ...
分类:
其他好文 时间:
2017-06-13 19:48:07
阅读次数:
268
1. boost::shared_ptr 前面我已经讲解了两个比较简单的智能指针,它们都有各自的优缺点。由于 boost::scoped_ptr 独享所有权,当我们真真需要复制智能指针时,需求便满足不了了,如此我们再引入一个智能指针,专门用于处理复制,参数传递的情况,这便是如下的boost::sha ...
分类:
编程语言 时间:
2017-05-11 22:30:52
阅读次数:
337
在开始本文内容之前,我们再来总结一下,前文内容: 1.智能指针采用RAII机制,在构造对象时进行资源的初始化,析构对象时进行资源的清理及汕尾. 2.auto_ptr防止拷贝后析构释放同一块内存,采用"转移所有权"的方法.(实际开发中auto_ptr并不实用) 3.scoped_ptr与auto_pt ...
分类:
编程语言 时间:
2017-04-03 11:30:02
阅读次数:
250
在介绍scoped_ptr之前,我们先回顾一下前两篇文章的内容. 首先,智能指针采用RAII机制,通过对象来管理指针,构造对象时,完成资源的初始化;析构对象时,对资源进行清理及汕尾. auto_ptr,通过转移管理权来完成对象的拷贝与赋值,在实际开发中并不实用. 回顾完智能指针的背景及auto_pt ...
分类:
编程语言 时间:
2017-04-01 23:00:07
阅读次数:
219
1.auto_ptr 和 scoped_ptr 的异同 a 和 s 都是通过析构函数去 delete T* 实现自动释放内存。a 可以转移所有权,但是 s 不可以 2. scoped_array sa 管理 new [] 分配的内存,析构时使用delete [] 因为 sa 不能动态增长,没有ite ...
分类:
其他好文 时间:
2017-03-15 18:52:01
阅读次数:
155
智能指针类模板[图]
scoped_ptr[图]
boostscoped_ptr的正确构造
boostshared_ptr[图]
boostshared_ptr构建.png[图]
boostshared_ptr可以多次引用指针
boostweekptr[图]
boostweek_ptr
boostintrusive侵入式指针
boostmake_shared省略显式的new
boostenable_shared_from_this
bo..
分类:
编程语言 时间:
2016-12-06 14:42:25
阅读次数:
304
共享指针 这个智能指针命名为boost::shared_ptr,定义在boost/shared_ptr.hpp里。智能指针boost::shared_ptr基本上类似于boost::scoped_ptr。关键不同之处在于boost::shared_ptr不一定要独占一个对象。它可以和其他boost: ...
分类:
其他好文 时间:
2016-08-13 20:55:42
阅读次数:
251
多个元素使用#include <boost/scoped_array.hpp> 单个元素使用#include <boost/scoped_ptr.hpp> 作用域数组 作用域数组的使用方式与作用域指针相似。关键不同在于,作用域数组的析构函数使用delete[]操作符来来释放所包含的对象。因为该操作符 ...
分类:
其他好文 时间:
2016-08-13 19:38:10
阅读次数:
190
多个元素使用#include <boost/scoped_array.hpp> 单个元素使用#include <boost/scoped_ptr.hpp> 作用域指针 它独占一个动态分配的对象,对应的类名为boost::scoped_ptr,定义在boost/scoped_ptr.hpp中。不像st ...
分类:
其他好文 时间:
2016-08-13 19:26:33
阅读次数:
419
1、VC和VSVC版并不是标准C++,VS版符合标准C++,其语法相当严格。缺点:VC和VS都只能释放一个具体类型空间,不能对数组空间进行释放,还有写时拷贝的问题;所以引发了Boost库的出现来解决此类问题。2、Boost库推荐看一下Boost库完全开发指南。Boost本身是开源库,在C++中的地位..
分类:
其他好文 时间:
2016-07-30 15:10:40
阅读次数:
147