RAII: Resource Acquisition Is Initialization

RAII: Resource Acquisition Is Initialization

RAII是由C++之父 Bjarne Stroustrup 提出的一项概念,即资源获取即初始化。 它利用栈对象在离开作用域后自动析构的语言特点,将受限资源的生命周期绑定到该对象上,当对象析构时以达到自动释放资源的目的。 由于内存资源是很宝贵的,在C/C++中使用裸指针往往需要程序员手动分配和手动释放,但是如果一个对象在使用时参与过程非常多,可能造成同一对象的多次分配或多次释放而导致程序错误或内存泄漏。

关于这个问题, Bjarne Stroustrup 给出了解决问题的方案:RAII,它充分的利用了C++语言局部对象自动销毁的特性来控制资源的生命周期。

RAII的基本步骤即:

  1. 设计一个类封装资源
  2. 在构造函数中初始化
  3. 在析构函数中执行销毁操作
  4. 使用时声明一个该对象的类

::TODO

发表评论

电子邮件地址不会被公开。 必填项已用*标注