Effective C++ 条款15 在资源管理类中提供对资源的原始访问

1. 有时资源管理类(resource-managing classes)需要提供对资源的直接访问,这就需要将RAII class对象转换为其内含的原始资源,有两种做法可以达成目标:显式转换和隐式转换.

2. 显式转换:shared_ptr和auto_ptr都提供一个get成员函数,用来执行显式转换,也就是它会返回智能指针内部的指针.

    隐式转换:重载类型转换操作符,但这极有可能导致意料之外的类型转换,因此shared_ptr和auto_ptr并没有提供这种转换

3. 两种方式都有利有弊:显示转换比较安全但不方便,隐式转换比较方便但不安全.一般而言应遵循"让接口容易被正确使用,不易被误用"的原则采用显示转换.

原文地址:https://www.cnblogs.com/reasno/p/4751973.html