RAII

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RAII相关的知识,希望对你有一定的参考价值。

RALL( resource accquision is initalition):资源获取初始化,也就是在构造对象时回调类的构造函数进行对象的初始化,如:可以在其中打开文件,申请内存等,当对象应该被销毁时,自动
调用析构函数,这一点是可以依赖的行为,可以将释放资源放在析构函数中。
如:socket::~socket()
{
close();
}

void socket::close()
{
if(_socket != NULL)
{
::close(_socket);
}
}

这样我们就保证了退出所有 的socket都会被关闭。

以上是关于RAII的主要内容,如果未能解决你的问题,请参考以下文章

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

c++智能指针的不断演化

Constructor Acquires, Destructor Releases Resource Acquisition Is Initialization