今天看到RAII(Resource Acquisition Is Initialization,即资源获得即初始化)的时候,脑子里竟然想不出它的意思。
其实这个词自己应该是很熟悉了的,在Exceptional C++和More exceptional C++这两本书中都有提到过RAII的概念,
并且Herb Sutter也给出了详尽的解释和应用。不过从今天自己的反应看来,我只是熟悉了RAII这个词而已,而没有将
它的真正意义记在脑子里,所以想在这里再次学习一下。
Resource Acquisition Is Initialization 是面向对象语言中的一个编程惯用语,是出于异常安全的资源管理
(exception-safe resource management) 的目的而被发明形成的一种广泛使用的技术。总的来说,它是为异常安全服
务的。
这里有四种异常安全类别: No exception safety, basic exception safety, Strong exception safety,
No-throw guarantee. (-_-我只记得两种)。No exception safety 和 No-throw guarantee的含义显而易见,