effective c++ 条款十四解读
来源:互联网 发布:怎么查淘宝授权书 编辑:程序博客网 时间:2024/05/22 07:08
以资源管理对象的时候小心copying行为。
上一节我们讲了以资源来管理函数,显然如果有一个互斥器,我们很容易写出这样的代码。
class Lock{public: Lock(Mutex* p):PMutex(p) { lock(pMutex); } ~Lock() { unlock(pMutex); }private: Mutex* pMutex;}但是显然当我们的类被复制的时候,这种做法就是有问题的:
Mutex mLock m1(&m);Lock m2(&m1);解决copy问题的两种手段:
1.禁止copy行为
2.采用reference counting的手法 也就是引用计数。通常在类里面内含一个shared_ptr 并定制shared_ptr的回调函数.
具体的做法见一下两段代码:
class Lock:private uncopyable{ ...}
class Lock{public: Lock(Mutex* p):pMutex(p,unlock) { lock(pMutex.get()); }private: shared_ptr<Mutex> pMutex;}
阅读全文
0 0
- effective c++ 条款十四解读
- effective C++条款二十四解读
- Effective C++ 条款二解读
- effective C++ 条款三 解读
- effective c++ 条款4解读
- effective C++条款五解读
- effective C++ 条款六解读
- effective C++ 条款八解读
- effective C++ 条款九解读
- effective C++ 条款十解读
- effective C++ 条款十一解读
- effective C++ 条款十二解读
- effective C++ 条款十三解读
- effective C++条款十五解读
- effective C++ 条款十六解读
- effective C++ 条款十七解读
- effective C++ 条款十八解读
- effective C++条款十九解读
- A. Inna and Pink Pony----暴力
- Word任务怎样在ABBYY FineReader12中自定义
- 【[Offer收割]编程练习赛23 B】【map模拟】合并子目录
- VirtualBox设置双网卡实现虚拟机上网及主宿机互访
- HDOJ1217 floyed算法
- effective c++ 条款十四解读
- 513_好久没写博客
- 【[Offer收割]编程练习赛23 C】【矩阵快速幂】H国的身份证号码II
- hdu 4089 概率dp
- 复合控件开发系列之一
- 远程通信RPC、RMI
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
- php环境搭建,最新一键wamp环境搭建
- 【codevs 4543】普通平衡树