资源取得时机便是初始化时机,描述了auto_ptr和tr1::shared_ptr如何将这个观念表现在heap-based资源上。并非所有资源都是heap-based,所以偶尔需要建立自己的资源管理类。
void lock(Mutex* pm); //锁定pm所指的互斥器
void unlock(Mutex* pm);//将互斥器解除锁定
为确保不会忘记将一个被锁住的Mutex解锁。
class Lock{
public:
explict Lock(Mutex* pm)
:mutexPtr(pm)
{ lock(mutexPtr);} //获取资源
~Lock(){ unlock(mutexPtr);} //释放资源
private:
Mutex* mutexPtr;
};