shared_ptr

RAII和模拟实现智能指针 2016-04-06

什么叫RAII(Resource Acquisition Is Initialization)?RAII指的就是资源分配即初始化,它的作用就是定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放.它是一种技术.为什么要使用RAII?在堆上分配空间时,我们必须很仔细的申请并给出相应的释放语句,但是随着程序的复杂度增大,判断.循环.递归这样的语句会让程序走向不确定,很有可能出现申请了没释放,申请了多次释放.所以我们定义了一个类来

C++智能指针的作用,模拟实现auto_ptr,scoped_ptr,shared_ptr,scoped_array,shared_array 2016-03-20

RAII(Resource Acquisition Is Initialization):资源分配即初始化,定义封装一个类,用来实现调用构造函数时就可完成资源的分配和初始化,在调用析构函数就可完成资源的清理,以实现对资源的初始化和清理.智能指针:用自动化或者说智能的指针来实现对动态内存的释放.它是一个类,有类似指针的功能.常见的智能指针有:auto_ptr/scoped_ptr/scoped_array/shared_ptr/shared_array一.AutoPtr首先,先介绍AutoPtr,

C++-在文件中查找指定的词出现的行号(shared_ptr) 2013-11-07

在文件中 查找 指定的词 出现的行号 (shared_ptr)在一个指定的文本中, 查找相应的词, 并输出词出现的行号, 和具体的行, 不重复出现行. 由于传输的文本较大, 所以使用指针进行传递, 智能指针的"shared_ptr".代码来自"C++ Primer"; 具体细节, 详见代码注释;代码:/* * cppprimer.cpp * * Created on: 2013.11.7 * Author: Caroline */ #include <iost

C++-shared_ptr拆分智能指针(smartpointer) 2013-11-04

"shared_ptr" 拆分智能指针(smart pointer)两个"shared_ptr"指针, 共享内存数据, 如果其中一个修改, 则对象(object)修改, 两个指针指向的数据均修改.如果想把两个指针拆分开,单独修改某一个, 则需要使用, unique()和reset()方法.如下代码所示, 只修改p, 并保持q不变, 但是两个的使用数量(use_count)均由2变化为1.代码:/* * CppPrimer.cpp * * Created on: 20

主流RAIIclass的存在价值——不存在能够完全替代DumbPointer的RAIIclass 2012-02-05

前言前几天在很多地方老是碰到RAII(Resouce Acqusition Is Initialition)相关的话题,对于这一块,由于自己以前在代码中很少用到,从来都习惯于使用dumb pointer,所以从没仔细去研究过.当它足够频繁的出现在我的眼前时,我渐渐意识到,是时候该做个了断了(说“了断”貌似有些夸张,其实也只是想把它研究透,以免以后老出现在我的眼前而不知其内部原理..).事实上,我当早该写这篇博文了,只是当我在看标准库的auto_ptr源码时,又发现里面的exception han
一周排行