RAII(Resource Acquistion Is Initialization)
是C++
的一种管理资源、避免泄露的惯用法。利用的就是C++
构造的对象最终会被销毁的原则。RAII
的做法是使用一个对象,在其构造时获取相应的资源,在对象生命期内控制对资源的访问,使之始终保持有效,最后在对象析构的时候,释放构造时获取的资源。
我们在编程使用系统资源(有限)时,都必须遵循一个步骤:1.申请资源;2.使用资源;3.释放资源。资源必须要申请才能使用,使用完成以后,必须要释放,否则会造成资源泄露。
当我们在一个函数内部使用局部变量时,当退出了这个局部变量的作用域时,这个变量也就被撤销了;当这个变量是类对象时,就会自动调用这个类的析构函数。RAII
就是这样完成的,如果把资源利用类进行封装,对资源操作都封装在类的内部,在析构函数中进行释放资源。当定义的局部变量的生命结束时,它的析构函数就会被自动调用。因为资源不具有拷贝语义,所以应该delete
拷贝构造函数和拷贝赋值函数。
RAII
最新推荐文章于 2024-02-20 10:26:34 发布