《Effective C++》学习笔记条款15 在资源管理类中提供对原始资源的访问
来源:互联网 发布:医院网络客服工资高吗 编辑:程序博客网 时间:2024/06/10 17:50
源,这时候我们需要直接访问原始资源。
这时候需要一个函数可将RAII对象(如tr1::shared_ptr)转换为其所内含之原始资源。有两种做法可以达成目
标:显示转换和隐式转换。
tr1::shared_ptr和auto_ptr都提供一个get成员函数,用来执行显示转换,也就是返回智能指针内部的原始指针
(的复件)。就像所有智能指针一样, tr1::shared_ptr和auto_ptr也重载了指针取值操作(operator>和operator*),
它们允许隐式转换至底部原始指针。(即在对智能指针对象实施->和*操作时,实际被转换为被封装的资源的指针。)
class Font
{
public:
...
FontHandle get() const //FontHandle是资源; 显示转换函数
{
return f;
}
operator FontHandle() const //隐式转换 这个值得注意,可能引起“非故意之类型转换”
{
return f;
}
...
};
是否该提供一个显示转换函数(例如get成员函数)将RAII类转换为其底部资源,或是应该提供隐式转换,答案主
要取决于RAII类被设计执行的特定工作,以及它被使用的情况。
显示转换可能是比较受欢迎的路子,但是需要不停的get,get;而隐式转换又可能引起“非故意之类型转换”。
请记住:
APIs往往要求访问原始资源,所以每一个RAII类应该提供一个“取得其所管理之资源”的方法。
对原始资源的访问可能经由显示转换或隐式转换。一般而言显示转换比较安全,但隐式转换对客户比较方便。
- 《Effective C++》学习笔记条款15 在资源管理类中提供对原始资源的访问
- Effective C++ 条款15学习笔记:在资源管理类型中提供对原始资源的访问
- 【Effective c++】条款15:在资源管理类中提供对原始资源的访问
- 读书笔记《Effective C++》条款15:在资源管理类中提供对原始资源的访问
- Effective C++:条款15:在资源管理类提供对原始资源的访问
- 《Effect C++》学习------条款15:在资源管理中提供对原始资源的访问
- Effective C++(15) 在资源管理类中提供对原始资源的访问
- C++之在资源管理类中提供对原始资源的访问(15)---《Effective C++》
- 条款15: 在资源管理类中提供对原始资源的访问
- 条款15、在资源管理类中提供对原始资源的访问
- 条款15: 在资源管理类中提供对原始资源的访问
- 条款15:在资源管理类中提供对原始资源的访问
- 条款15:在资源管理类中提供对原始资源的访问
- 条款15 在资源管理类中提供对原始资源的访问
- 条款15 在资源管理类中提供对原始资源的访问
- 条款15:在资源管理类中提供对原始资源的访问
- 条款15 在资源管理类中提供对原始资源的访问
- 条款15:在资源管理类中提供对原始资源的访问
- Android源码下载
- maven FAQ
- 黑马程序员-银行
- Java启动子进程,子进程又启动孙进程后,Java在InputStream inputStream = process.getInputStream();中读取时,何时会返回null?
- 设置windows 宿主计算机和VMware虚拟机共享文件夹
- 《Effective C++》学习笔记条款15 在资源管理类中提供对原始资源的访问
- Tkinter 8.5 参考手册: a GUI for Python (二)
- Java Calendar 类的时间操作
- 重学微积分(一)
- Android View水平滑动与分页加载方案
- 王家林的第三讲Hadoop图文训练课程:证明Hadoop工作的正确性和可靠性只需4步图文并茂的过程
- CAS取消https验证
- 【HP 打印机】安装 Windows 7 中的网络打印机时收到错误消息:"0x0000052e"
- HDU - 2476 String painter