码迷,mamicode.com
首页 >  
搜索关键字:raii    ( 121个结果
C++基础学习教程(八)
引入 在进行下一步的学习之前,我们需要厘清几个概念. RAII 首先介绍一个编程习语,”RAII”(ResourceAcquisition Is Initialization,资源获取即为初始化),他描述了利用构造函数\析构函数,并在函数返回时自动析构的机制.简言之,RAII意为构造函数获取一种资源;打开一个文件,一个网络连接,或仅仅是从某I/O流中复制一些标志.这种获取是对象初始化的一部分...
分类:编程语言   时间:2014-07-30 17:45:34    阅读次数:346
RAII和unique_ptr
RAIIRAII是Resource Acquisition Is Initialization的缩写,是在面向对象(object-oriented)语言中使用的一种编程习惯,主要是用来在C++中处理异常安全资源管理(exception-safe resource management)。在RAII中...
分类:其他好文   时间:2014-07-22 23:14:13    阅读次数:501
使用C++11新特性来实现RAII进行资源管理
方法一:借助auto、decltype、unique_ptr、Lambda表达式构造 sqlite3 *db = NULL; auto deleter = [](sqlite3 *pdb){sqlite3_close(pdb);} int nRet = sqlite3_open16(L"F:\\my...
分类:编程语言   时间:2014-07-16 22:59:07    阅读次数:385
c++ RAII 资源管理就是初始化
RAII:(Resource Acquisition Is Initialization),也就是“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。C++标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单的说,RAII 的做法是使用一个对象,在其构造时获...
分类:编程语言   时间:2014-06-28 20:01:21    阅读次数:298
Effective C++:条款15:在资源管理类提供对原始资源的访问
(一) 下面代码: tr1::shared_ptr pInv(createInvestment()); int daysHeld(const Investment* pi); 我们要调用daysHeld函数的话,就必须传递一个Investment指针,但是我们现在只有pInv对象,所以我们需要一个函数可将RAII class(本例为tr1::shared_ptr)对象转换为其所内含之原始资...
分类:编程语言   时间:2014-06-16 11:55:57    阅读次数:250
条款14:在资源管理类中小心coping行为
条款14:在资源管理类中小心coping行为 在前一个条款,我们提出了RAII(资源获得即是初始化)技术,通过“对象管理资源”达到防止资源泄露,对于通过堆分配的内存,可以借助指针指针实现,但系统中有很多资源不是堆分配:文件句柄,锁,网络套接字。这些资源就需要自己实现对象来管理。...
分类:其他好文   时间:2014-06-05 10:48:28    阅读次数:210
auto_ptr浅析
auto_ptr是C++标准库中()为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针)auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。std::auto_ptr pa(new Cl...
分类:其他好文   时间:2014-06-02 17:12:02    阅读次数:210
C++之RAII
RAII是resourceacquisitionisinitialization的缩写,意为“资源获取即初始化”。它是C++之父BjarneStroustrup提出的设计理念,其核心是把资源和对象的生命周期绑定,对象创建获取资源,对象销毁释放资源。在RAII的指导下,C++把底层的资源管理问题提升....
分类:编程语言   时间:2014-06-02 16:45:20    阅读次数:305
如何在C++中获得完整的类型名称
折腾C++的类型系统是一个很有意思的事情。当钻进去之后就会发现,一些原先比较晦涩的基本概念,在研究的过程中都清晰了不少。 check_type的实用价值在于,可以利用它清晰的看见C++中一些隐藏的类型变化。比如完美转发时的引用折叠。 在实现check_type的过程中,用到了不少泛型,甚至元编程的小技巧,充分运用了C++在预处理期、编译期和运行期(RAII)的处理能力。虽然这些代码仅是学习研究时的兴趣之作,实际项目中往往typeid的返回结果就足够了,但上面的不少技巧对一些现实中的项目开发也有一定的参考和...
分类:编程语言   时间:2014-05-16 01:44:26    阅读次数:354
C++中的智能指针
众所周知,C++中对堆内存的申请与释放完全由用户来控制,这就造成用户在使用的时候经常造成内存泄漏、野指针、重复释放等常见的挂掉问题,所以我们有必要提供一套机制,使得用户只需申请相应的内存,不用管释放的问题,其实这属于著名的RAII(Resource Acquisition Is Initialization) 技术 。在C++中这种技术称作“智能指针”,C++中的智能指针技术越来越受到广泛应...
分类:编程语言   时间:2014-05-13 11:37:49    阅读次数:358
121条   上一页 1 ... 10 11 12 13 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!