通俗理解RAII
最近在学习c++多线程编程的时候,偶然看到了RAII的概念,有种这么多年c++白学了的感觉,路漫漫其修远兮啊。下面是我在查找RAII资料时候看到的一篇非常好的博客,因为觉得自己实在写不出比这篇更好的对于RAII的总结的博客了,所以就把文章转摘过来了。
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。
我记得第一次学到RAII惯用法是在Bjarne Stroustrup的《C++程序设计语言(第3版)》一书中。当讲述C++资源管理时,Bjarne这样写道:使用局部对象管理资源的技术通常称为“资源获取就是初始化”。这种通用技术依赖于构造函数和析构函数的性质以及它们与异常处理的交互作用。


