ofstream fw("out");
fw << "hello world" << endl;
// do something
fw.close();
像这里写了一个写文件 *** 作,中间做了一大堆事情,最后关闭文件句柄,同样像new一堆内存,最后我们需要关闭它,像这种东西,在c++可以通过智能指针,甚至前面提到的RAII方法解决,那么除了这些还有什么?
没错,那就是ScopeGuard(简称sg),使用sg可以模拟defer,像go中写法:
func test() {
// do something
defer xxx();
}
同样,我们在C++中也可以实现这种效果,本节就带大家一起实现一个类似的效果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)