【发布时间】:2011-01-26 20:32:12
【问题描述】:
我是 C++ 爱好者。我正在编写一些 Win32 API 代码,并且有很多句柄和奇怪的复合分配对象。所以我想知道 - 是否有一些包装类可以使资源管理更容易?
例如,当我想加载一些数据时,我用CreateFile() 打开一个文件并得到一个HANDLE。当我完成它时,我应该打电话给CloseHandle()。但是对于任何相当复杂的加载函数,都会有几十个可能的退出点,更不用说例外了。
因此,如果我可以将句柄包装在某种包装类中,一旦执行离开范围,它将自动调用CloseHandle()。更好的是——它可以做一些引用计数,这样我就可以将它传入和传出其他函数,并且只有在最后一个引用离开作用域时才会释放资源。
这个概念很简单——但标准库中有类似的东西吗?顺便说一句,我使用的是 Visual Studio 2008,我不想附加 Boost 之类的第 3 方框架。
【问题讨论】:
标签: c++ raii resource-management