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