1.什么是RAII

什么是RAII

  • 其他博客中很多写的是“RAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法。”,如果理解什么是RAII后再看这句话就很容易懂,但如果什么都不懂,直接看这一句应该是看不懂的。
  • 我的直白的理解就是,一种编程规范,或者一种编程技巧,不是具体的语法之类的,就是和设计模式一样,是一种技巧。

详解

  • 下面解释定义:一种资源管理、避免泄露的惯用法
    • 比如使用一个指针后,在不使用的时候要将它释放,但是有时候可能会忘记释放指针,就会造成内存泄露,如下面的例子,如果不调用delete s,就会造成s占用的资源一直不释放,直到程序死亡。
    void test(){
    	Studen* s=new Student();
    	//其他处理代码
    	delete s;
    }
    
    • 使用RAII机制,就是自定义管理,将要管理的东西疯转成对象,在对象的作用域结束的时候,调用对象的析构函数,自动释放资源,就不用程序员自己释放,简单来说就是这样。
    • 为了方便,就直接使用C++11的share_prt做例子
    void test(){
    	shared_ptr<Studen> s =make_share<Studen> ();
    	//其他处理代码
    	// delete s; 不需要这一句
    }
    
    • 这只是简单的了解RAII,RAII还有一些坑,这些不想整理了,看看其他的博客吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值