码迷,mamicode.com
首页 >  
搜索关键字:autoptr    ( 20个结果
EC笔记:第三部分:17、使用独立的语句将newed对象放入智能指针
一般的智能指针都是通过一个普通指针来初始化,所以很容易写出以下的代码: #include using namespace std; int func1(){ //返回一个整数的函数 } void func2(AutoPtr ptr,int t){ //一些操作 } int ... ...
分类:其他好文   时间:2016-12-27 00:30:03    阅读次数:248
智能指针
智能指针是能够智能化的动态开辟空间和内存释放。C++中引入智能指针,是防止我们在动态开辟空间是,由于疏忽大意,导致内存的释放出现问题,最终致使内存泄漏。智能指针的基本特点:(1)智能指针管理的是一块内存的释放。(2)智能指针是一个类,有类似指针的功能。AutoPtr:#..
分类:其他好文   时间:2016-04-25 15:14:59    阅读次数:169
【C++】智能指针的原始写法、scoped写法、shared写法
智能指针的三种常见写法:一、最开始的原始写法,原始写法可以理解为指针转移的方法。template<typenameT> classAutoPtr { public: AutoPtr() :_ptr(NULL) {} AutoPtr(T*ptr) :_ptr(ptr) {} ~AutoPtr() { if(_ptr) { delete_ptr; _ptr=NULL; } } AutoPtr<T>(Aut..
分类:编程语言   时间:2016-04-21 07:36:46    阅读次数:211
智能指针
智能指针:是存储指向动态分配对象指针的类。能够在适当的时间自动删除指向的对象。下面是它的三种实现://autoptr template<classT> classAutoptr { public: Autoptr(T*ptr) :_ptr(ptr) {} ~Autoptr() { if(_ptr) { delete_ptr; _ptr=NULL; } } Aut..
分类:其他好文   时间:2016-04-20 02:14:48    阅读次数:138
RAII&智能指针
RAII:资源分配及初始化。但是这个翻译并没有显示出这个惯用法的真正内涵。RAII的好处在于它提供了一种资源自动管理的方式,当出现异常,回滚等现象时,RAII可以正确的释放资源。内存泄漏会导致:1.内存耗尽2.其他程序可能用不了了3.程序崩溃在资源的获取和释放之间,我们通常..
分类:其他好文   时间:2016-04-07 01:41:25    阅读次数:204
智能指针
智能指针(上)#define_CRT_SECURE_NO_WARNINGS1//AutoPtr(新方案)#include<iostream>usingnamespacestd;template<classT>classAutoPtr{public:AutoPtr(T*ptr):_ptr(ptr){}AutoPtr(AutoPtr<T>&ap):_ptr(ap._ptr){ap._ptr=NULL;//交换管理权,将ap1置空..
分类:其他好文   时间:2016-04-05 16:26:32    阅读次数:272
智能指针
对于智能指针AutoPtr,一般有两种实现的方法,一种是s1与s2同时指向一个空间的时候,将s1置为空,这样就会避免析构的时候产生麻烦。#include<iostream>#include<string>usingnamespacestd;template<classT>classAutoPtr{protected: T*_ptr;public: AutoPtr(T*..
分类:其他好文   时间:2016-04-05 14:15:28    阅读次数:219
auto_ptr的两种方案
方案一:因为在类中对同一块空间的析构在一次以上,就会发生错误,所以在进行赋值和拷贝构造时(同一块空间有一个以上的指针指向),保证只有一个指针指向这块空间,对原指针赋空操作,这样在析构时一块空间只会被析构一次classAutoPtr { public: //构造函数 AutoPtr(T*ptr) ..
分类:其他好文   时间:2016-04-04 21:08:19    阅读次数:155
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
20条   1 2 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!