条款14:在资源管理类中小心 copying 行为
为什么要实现资源管理类
class Lock {
public:
explicit Lock(Mutex* pm): mutexPtr(pm) {
lock(mutexPtr); // 获得资源;
}
~Lock() {
unlock(mutexPtr); // 释放资源;
}
};资源管理类的复制问题
class Lock {
public:
explicit Lock(Mutex* pm): mutexPtr(pm, unlock) {
lock(mutexPtr.get());
}
private:
std::tr1:shared_ptr<Mutex> mutexPtr;
};Last updated