码迷,mamicode.com
首页 >  
搜索关键字:auto-ptr    ( 227个结果
RAII和模拟实现智能指针
什么叫RAII(ResourceAcquisitionIsInitialization)?RAII指的就是资源分配即初始化,它的作用就是定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。它是一种技术。为什么要使用RAII?在堆上分..
分类:其他好文   时间:2016-04-06 18:54:12    阅读次数:196
auto_ptr的两种方案
方案一:因为在类中对同一块空间的析构在一次以上,就会发生错误,所以在进行赋值和拷贝构造时(同一块空间有一个以上的指针指向),保证只有一个指针指向这块空间,对原指针赋空操作,这样在析构时一块空间只会被析构一次classAutoPtr { public: //构造函数 AutoPtr(T*ptr) ..
分类:其他好文   时间:2016-04-04 21:08:19    阅读次数:155
Dev C++支持c++11标准的编译方法
一开始学C++的时候老师推荐的就是Dev C++这个IDE,用起来感觉还不错,使用起来比较简单,而且属于比较轻量级的,不怎么占用内存;缺点可能就是调试功能没有项VS那种大型IDE齐全和好用,不过对于一个新手来说绝对足够了。 最近在一些工程中需要用到智能指针的库,比如说auto_ptr以及boost里 ...
分类:编程语言   时间:2016-04-04 14:46:31    阅读次数:143
智能指针的简单实现
智能指针:动态的管理开辟的内存,防止人为的内存泄漏。 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
智能指针(模拟实现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
智能指针的模拟实现 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++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。程序员忘记delete,流程太复杂,最终导致没有delete,异常导致程序过早退出,没有执行delete的情况并不罕见。RAII(ResourceAcquisitionIsInitialization)资源分配即初始化,定义一个类来封装资..
分类:编程语言   时间:2016-03-22 00:54:14    阅读次数:350
227条   上一页 1 ... 8 9 10 11 12 ... 23 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!