总第106篇
本篇主要对C++
中的RAII
机制进行一个全面的梳理和总结,以便日后项目中参考。
1.什么是RAII
RAII
是Resource Acquisition Is Initialization
的简称,其翻译过来就是“资源获取即初始化”,即在构造函数中申请分配资源,在析构函数中释放资源,它是C++
语言中的一种管理资源、避免泄漏的良好方法。
C++
语言的机制保证了,当创建一个类对象时,会自动调用构造函数,当对象超出作用域时会自动调用析构函数。RAII
正是利用这种机制,利用类来管理资源,将资源与类对象的生命周期绑定,即在对象创建时获取对应的资源,在对象生命周期内控制对资源的访问,使之始终保持有效,最后在对象析构时,释放所获取的资源。
RAII
技术被认为是C++
中管理资源的最佳方法,更进一步来说,使用RAII
技术也可以实现安全、简洁的状态管理。
2.如何使用RAII
对于系统中的资源不具有自动释放的功能, 而C++
中的类具有自动调用析构函数的功能,因此我们可以将资源用类进行封装起来,对资源的操作都封装在类的内部,在析构函数中进行资源的释放。
下面是一个示例,将资源封装成类再使用: