Skip to content

Instantly share code, notes, and snippets.

@qiaohaijun
Last active June 13, 2017 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qiaohaijun/ca388a2a19c37bd04c215c9584d6adea to your computer and use it in GitHub Desktop.
Save qiaohaijun/ca388a2a19c37bd04c215c9584d6adea to your computer and use it in GitHub Desktop.

RAII 本质

说了这么多了,RAII的本质内容是用对象代表资源,把管理资源的任务转化为管理对象的任务,将资源的获取和释放与对象的构造和析构对应起来,从而确保在对象的生存期内资源始终有效,对象销毁时资源一定会被释放。说白了,就是拥有了对象,就拥有了资源,对象在,资源则在。所以,RAII机制是进行资源管理的有力武器,C++程序员依靠RAII写出的代码不仅简洁优雅,而且做到了异常安全。在以后的编程实际中,可以使用RAII机制,让自己的代码更漂亮。


RAII 是一种思想,这个思想不光可以用在c++中,也可以用在其他编程语言。


c++ 的对象在离开他们的作用域的时候,会调用类的析构函数,利用对象的自动调用析构函数的特性,达到以下目的

  1. 对象生成的时候,利用对象的构造,来获取资源
  2. 当对象离开作用域的时候,调用对象的析构函数,析构函数中间对对象进行管理,释放资源。
  3. 达到的目的就是,对象在,资源在,对象死,资源死
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment