条款14:在资源管理类中小心 copying 行为
Think carefully about copying behavior in resource-managing classes.
为什么要实现资源管理类
并非所有的资源都是 heap-based,而对于此类资源,智能指针可能不适合作为资源掌管者(resource handlers),例如互斥锁资源:
资源管理类的复制问题
一般解决方法有以下几种:
禁止复制;
对底层资源使用引用计数法:通常只要内含一个
tr1::shared_ptr
成员变量,就可以实现引用计数;其中引用计数型智慧指针允许指定删除器(deleter,一个函数或者函数对象),当引用次数为 0 时便被调用;
复制底部资源;
转移底部资源的拥有权;
Last updated
Was this helpful?