【干货】share智能指针的模拟实现
来源:互联网 发布:2345好压mac版 编辑:程序博客网 时间:2024/05/29 07:03
智能指针是C++实现自动内存管理的一种手段,本质是通过对象出作用域会自动析构,让对象保存与所需管理的目标指针指向同一片动态开辟空间的地址,出作用域会自动析构。这里模拟了,boost中的share智能指针,代码如下:
#pragma oncetemplate<class T>class SharePtr{public:SharePtr(T*ptr):_ptr(ptr),_Rcount(new size_t(1))//引用计数解决拷贝构造与赋值运算符重载的问题{}~SharePtr(){if (--(*_Rcount)){delete _ptr;delete _Rcount;}}SharePtr(const SharePtr&ptr):_ptr(ptr){++(*_Rcount);}SharePtr& operator = (SharePtr ptr){swap(_ptr, ptr._ptr);swap(_Rcount, ptr._Rcount);return *this;}T & operator * ()//使对象完成与指针类似的操作,在这里重载了“*”、“->”的操作符{return *_ptr;}T * operator ->(){return _ptr;}size_t GetRefCount(){return *_Rcount;}private:T *_ptr;size_t* _Rcount;};
如有不足,希望批评指正。
本文出自 “pawnsir的IT之路” 博客,请务必保留此出处http://10743407.blog.51cto.com/10733407/1753276
0 0
- 【干货】share智能指针的模拟实现
- 智能指针的模拟实现
- 模拟实现智能指针
- 模拟实现智能指针
- 模拟实现智能指针
- 模拟实现智能指针
- 智能指针AutoPtr,ScopedPtr的模拟实现
- 模拟实现智能指针SharePtr
- C++智能指针干货
- 智能指针的模拟实现 auto_ptr scoped_ptr shared_ptr
- 智能指针—AutoPtr,ScopedPtr,SharedPtr的模拟实现
- 智能指针(还缺少scoped_ptr的模拟实现)
- 模拟实现boost库里的智能指针
- (C++)智能指针的模拟实现及使用
- C++智能指针(二):模拟实现三种智能指针
- 智能指针的实现
- 智能指针的实现
- 智能指针的实现
- 基于hadoop与spark的大数据分析实战——第二章、Spark部署与安装
- 【干货】C++通过模板特化实现类型萃取实例--实现区分基本类型与自定义类型的memcpy
- 【代码】模板实现动态线性表(无类型萃取)
- 【技巧】通过适配器模式完成栈的数据结构
- 【代码】模板动态线性表&类型萃取
- 【干货】share智能指针的模拟实现
- 【一张大大的图片】类和对象知识点总结
- 【智能指针的延伸】两种定制删除器的实现方法
- 【干货】容器适配器实现两个栈模拟队列
- 【代码】C++实现广义表及其测试用例
- 【代码】C++实现二叉树基本操作及测试用例
- 二叉树的线索化算法思想详解
- 【代码】c++堆的简单实现
- 堆排序算法思路详解