C++RAII机制(智能指针原理)

原文详细整理

C++中的RAII机制 - 码到城攻RAII机制,是C++语言的一种管理资源、避免泄漏的惯用法https://www.codecomeon.com/posts/200/

何为RAII


RAII 是 Resource Acquisition Is Initialization 的简称,是C++语言的一种管理资源、避免泄漏的惯用法。利用的就是C++构造的对象最终会被销毁的原则。RAII的做法是使用一个对象,在其构造时获取对应的资源,在对象生命期内控制对资源的访问,使之始终保持有效,最后在对象析构的时候,释放构造时获取的资源。

一个简单的例子:

#include
using namespace std;
int main()
{
    int *testArray = new int [10];
    // Here, you can use the array
    delete [] testArray;
    testArray = NULL ;
    return 0;
}


我们使用 new 开辟的内存资源,如果我们不进行释放的话,就会造成内存泄漏。所以,在编程的时候,new和delete操作总是匹配操作的。如果总是申请资源而不释放资源,最终会导致资源全部被占用而没有资源可用的场景。但是,在实际的编程中,我们总是会各种不小心的就把释放操作忘了,就是编程的老手,在几千行代码,几万行中代码中,也会犯这种低级的错误。

再看一个例子:

你可能感兴趣的:(C++,c++,开发语言,码到城攻,RAII)