码迷,mamicode.com
首页 >  
搜索关键字:智能指针    ( 834个结果
智能指针的简单剖析和实现
在C语言中我们用指针来进行内存管理,这也是C语言的强大之处。然而,也正是指针的存在使得C语言变得令人懊恼,内存泄漏、垂悬指针等等问题。强大的C++则采用智能指针(Smart_Ptr)来处理这个问题.好了,什么是智能指针呢?智能指针的行为类似常规指针,重要的区别是它负责自动释..
分类:其他好文   时间:2016-04-10 01:25:47    阅读次数:230
C++_智能指针
讲这个之前,先来看一个例子:voidTest1() { int*p1=newint(2); //... try { DoSomeThing(); } catch(...) { deletep1; throw; } //... deletep1; }这个例子,是通过C++异常处理机制,来管理动态开辟出来的内存,这是可以做到的。那如果我们以后new出来一块内存,都要这么做,..
分类:编程语言   时间:2016-04-07 01:42:40    阅读次数:197
RAII&智能指针
RAII:资源分配及初始化。但是这个翻译并没有显示出这个惯用法的真正内涵。RAII的好处在于它提供了一种资源自动管理的方式,当出现异常,回滚等现象时,RAII可以正确的释放资源。内存泄漏会导致:1.内存耗尽2.其他程序可能用不了了3.程序崩溃在资源的获取和释放之间,我们通常..
分类:其他好文   时间:2016-04-07 01:41:25    阅读次数:204
C++的RAII和智能指针小结
RAII:资源分配即初始化,利用构造函数和析构函数定义一个类来完成对资源的分配和释放智能指针主要用来防止内存泄漏,我们来举个栗子,看看为什么会有智能指针这个东东例1:对于上面这段程序,由于抛出异常的时候影响了代码的执行流,所以要在异常捕获之前将p提前释放(详见我的..
分类:编程语言   时间:2016-04-07 01:39:39    阅读次数:212
深度剖析智能指针
RALL:资源分配即初始化,定义一个类来封装资源的分配和释放,在构造函数中完成资源的分配和初始化,在析构函数中完成资源的清理。首先来看这样一个例子:此例子乍一看上去,new/delete匹配,并没有什么错。但就因为return的存在,使得Test()函数提前结束,并没有执行deletep。..
分类:其他好文   时间:2016-04-07 01:38:11    阅读次数:261
RAII和模拟实现智能指针
什么叫RAII(ResourceAcquisitionIsInitialization)?RAII指的就是资源分配即初始化,它的作用就是定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。它是一种技术。为什么要使用RAII?在堆上分..
分类:其他好文   时间:2016-04-06 18:54:12    阅读次数:196
Effective C++ 条款45
本节条款的题目是运用成员模板接受全部兼容类型 作者阐述自己的观点是通过智能指针的样例。 在学习本节条款之前我们要先明确关于隐式转化的问题 例如以下代码: #include<iostream> using namespace std; class A { public: explicit A(int ...
分类:编程语言   时间:2016-04-06 13:32:32    阅读次数:175
智能指针
智能指针(上)#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
boost::shared_ptr与定制删除器
shared_ptrshared_ptr是一种智能指针,他的作用如同指针,但会记录有多少shared_ptr指向同一个对象。使用时必须引用头文件<boost/shared_ptr.hpp>template<classT> classShartedPtr { public: //构造函数 ShartedPtr(T*ptr) :_ptr(ptr) ,_pCount(newint(1)) {..
分类:其他好文   时间:2016-04-05 02:21:14    阅读次数:685
834条   上一页 1 ... 40 41 42 43 44 ... 84 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!