码迷,mamicode.com
首页 >  
搜索关键字:智能指针    ( 834个结果
C++ 几种智能指针的简单实现
#pragmaonce//智能指针//定义个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的//清理,可以保证资源的正确初始化和释放。//这里简单实现AutoPtr、ScopedPtr、ScopedArray以及SharedPtr//------------------------------SmartPtr.h--------..
分类:编程语言   时间:2016-04-01 06:48:39    阅读次数:274
智能指针
1.智能指针template<classT> classAutoPtr { public: AutoPtr(T*ptr) :_ptr(ptr) { } ~AutoPtr() { if(_ptr!=NULL) { cout<<"delete"<<_ptr<<endl; delete_ptr; _ptr=NULL; } } AutoPtr(AutoPtr<T>&ap) :_ptr(ap._ptr) { ap._ptr=NULL;//管..
分类:其他好文   时间:2016-04-01 06:43:53    阅读次数:124
实现一个简洁版的智能指针
//智能指针可以自动销毁,用引用计数技术实现 #include<iostream> usingnamespacestd; template<classT> classSmartPtr { protected: T*_ptr; size_t*_cout; voidclear() { if(--*_cout==0) { delete_ptr; delete_cout; } } public: SmartPtr(T*ptr=0) :_ptr(pt..
分类:其他好文   时间:2016-03-31 19:02:34    阅读次数:167
C++智能指针(3.30)
一、问题引入关于C++中的new和delete操作符,我们知道这两个操作符必须成对存在,才能避免内存泄漏。这一点在学习的时候被认为是常识,然而,在实际编写代码的过程中,却常常很难做到。下面有3种情况:1、代码很长。当需要用到delete的地方离使用与之对应的new操作符距离非常远..
分类:编程语言   时间:2016-03-31 00:26:11    阅读次数:245
智能指针的简单实现
智能指针:动态的管理开辟的内存,防止人为的内存泄漏。 SharedPtr的实现: 原理:使用引用计数的原理使多个对象可以指向一块空间。 #define_CRT_SECURE_NO_WARNINGS #include<iostream> usingnamespacestd; template<classT> classSharedPtr { public: SharedPt..
分类:其他好文   时间:2016-03-30 19:47:06    阅读次数:167
模拟实现c++标准库和boost库中的智能指针
我们知道c++标准库中定义了智能指针auto_ptr,但是我们很少用它,因为虽然它能够自动回收动态开辟的内存,不需要程序员自己去维护动态开辟的内存,但是当用它去赋值或者是拷贝构造时有一个管理权转移的过程,这样我们就不能很方便的使用auto_ptr。下面是简单的auto_ptr的实现,..
分类:编程语言   时间:2016-03-30 18:04:49    阅读次数:245
梳理caffe代码common(八)
由于想梳理data_layer的过程,整理一半发现有几个非常重要的头文件就是题目列出的这几个: 追本溯源,先从根基开始学起。这里面都是些什么鬼呢? common类 命名空间的使用:google、cv、caffe{boost、std}。然后在项目中就可以随意使用google、opencv、c++的标准库、以及c++高级库boost。caffe采用单例模式封装boost的智能指针(caffe的灵...
分类:其他好文   时间:2016-03-29 10:51:25    阅读次数:310
【智能指针的延伸】两种定制删除器的实现方法
所谓定制删除器,就是向目标模板提供一个可以自由选择析构的接口,这样做的好处就是可以使智能指针模板不再只能单独管理内存,我们还可以用它管理文件指针之类的东西。其实现方法有两种,这里我们以share指针为例。1.传递一个类的模板参数并给出缺省值,模板中将该类设定为成员..
分类:其他好文   时间:2016-03-28 00:29:28    阅读次数:252
智能指针(模拟实现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
boost的内存管理
smart_ptr raii ( Resource Acquisition Is Initialization ) 智能指针系列的都统称为smart_ptr,包括c++98标准的auto_ptr 智能指针是一个类,通过重载->和*完成类似原始指针的操作。不过因为是类,所以可以做比如内存管理、线程安全之类的工作 智能指针均是自动管理内存,不需要显示调用delete scoped_ptr...
分类:其他好文   时间:2016-03-26 07:59:56    阅读次数:210
834条   上一页 1 ... 42 43 44 45 46 ... 84 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!