码迷,mamicode.com
首页 >  
搜索关键字:shared_ptr    ( 356个结果
模拟实现c++标准库和boost库中的智能指针
我们知道c++标准库中定义了智能指针auto_ptr,但是我们很少用它,因为虽然它能够自动回收动态开辟的内存,不需要程序员自己去维护动态开辟的内存,但是当用它去赋值或者是拷贝构造时有一个管理权转移的过程,这样我们就不能很方便的使用auto_ptr。下面是简单的auto_ptr的实现,..
分类:编程语言   时间:2016-03-30 18:04:49    阅读次数:245
智能指针(模拟实现auto_ptr,shared_ptr,scooeptr 以及定制删除器c++ 实现)
#define_CRT_SECURE_NO_WARNINGS #include<iostream> usingnamespacestd; template<classT> classAuto_ptr { public: Auto_ptr(T*_x):x(_x) {} Auto_ptr(Auto_ptr<T>&s):x(s.x) { s.x=NULL; } Auto_ptr&operator=(Auto_ptr<T>&s) { x=s...
分类:编程语言   时间:2016-03-26 08:49:48    阅读次数:263
智能指针的模拟实现 auto_ptr scoped_ptr shared_ptr
RAII(ResourceAcquisitionIsInitialization)资源分配即初始化,定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。智能指针:用自动化或者说智能的指针来实现对动态内存的释放。它是一个类,有..
分类:其他好文   时间:2016-03-23 23:49:17    阅读次数:217
智能指针的模拟实现shared_ptr 循环引用 定置删除器
auto_ptr与scoped_ptr的实现见本人的上篇博客。三、shared_ptrshared_ptr的实现原理是通过引用计数来实现,只有当引用计数为1时才释放空间,否则只需将引用计数减1.拷贝和赋值将引用计数加1,具体代码如下:template<typenameT> classSharedPtr { public: SharedPtr(); ..
分类:其他好文   时间:2016-03-23 23:48:50    阅读次数:210
C++智能指针简单剖析
最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而
分类:编程语言   时间:2016-03-22 22:01:54    阅读次数:252
【C++】智能指针的作用,模拟实现auto_ptr,scoped_ptr,shared_ptr
RAII(ResourceAcquisitionIsInitialization):资源分配即初始化,定义封装一个类,用来实现调用构造函数时就可完成资源的分配和初始化,在调用析构函数就可完成资源的清理,以实现对资源的初始化和清理。智能指针:用自动化或者说智能的指针来实现对动态内存的释放。它是一个类..
分类:编程语言   时间:2016-03-21 02:07:36    阅读次数:509
c++11 对象池的实现
const int MaxObjectNum = 10; template <typename T> class ObjectPool { template <typename... Args> using Constructor = std::function<std::shared_ptr<T>
分类:编程语言   时间:2016-03-12 01:36:35    阅读次数:755
C++11 auto_ptr 的问题
auto_ptr作为最早的智能指针,可以实现以RAII手法管理堆区对象,但它设计的本意只是简单的利用C++对于栈区对象的自动析构管理堆区对象, 并不像shared_ptr那样包含引用计数,可以在每次拷贝的时候多出一个“分身”。这时候,拷贝的语义就成了很大的问题(按理说直接禁掉可能好好些), 于是就出
分类:编程语言   时间:2016-02-28 15:12:29    阅读次数:169
如何用shared_ptr减少锁的争用
在并发环境下锁的使用是家常便饭, 如何减少锁的使用是优化程序性能的一个方面. c++11里面新增了智能指针std::shared_ptr, 这个东西也许能给我们带来些启发. shared_ptr的一个特性是当引用计数为0时,它所拥有的堆内存会被自动释放. 利用这个特性我们可以做点实用的功能, 如下程
分类:其他好文   时间:2016-02-27 12:19:48    阅读次数:119
Boost智能指针——shared_ptr
转: http://www.cnblogs.com/TianFang/archive/2008/09/19/1294521.html boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boo
分类:其他好文   时间:2016-02-22 18:59:56    阅读次数:120
356条   上一页 1 ... 18 19 20 21 22 ... 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!