简单的实现RAII封装。
前面的文章中介绍了通过RAII的技术实现保证资源被释放和某函数被执行的类似finally关键字的功能。并演示了一个通过boost的function和bind的两个库实现的通用RAII封装类。
那个例子固然通用而有效,然而,我们有时项目中并没有用到boost库,就要自己封装一个了。
#include <iostream>
using namespace std;
void main()
{
int i = 3;
cout<<"hello world "<<i<<endl;
struct finalcall
{
int& i;
finalcall(int& i):i(i){}
~finalcall(){cout<<"final hello world "<<i<<endl;}
}f(i);
i=2;
}
上述例子中通过局部类简单的封装了一下。比较简单,就不多介绍了。