你可能会发现,有时候需要创建自己的资源管理类。例如,假设你正在使用一个C API来操作互斥对象,互斥类型提供了lock和unlock函数:
void lock(Mutex* pm); // 锁住pm指向的互斥量
void unlock(Mutex* pm); // 互斥量解锁
class Lock {
public:
explicit Lock(Mutex* pm)
: mutexPtr(pm)
{
lock(mutexPtr);
} // 获取资源
~Lock() {
unlock(mutexPtr); } // 释放资源
private:
Mutex