在资源管理类中提供对原始资源的访问
当我们用资源管理类来管理对象的时候,很多我们调用的系统API可能需要接受原始的资源参数,这时候我们的资源管理类必须提供对原始资源的访问。
比如shared_ptr就提供了get方法来拿到底层的原始指针。
一般来说,获取原始资源的方法有两个
1.调用get函数获得原始资源。
2.在类中实现类型转换函数。
用一个字体管理类来分别阐述上面两种做法:
class Font
{
public:
explicit Font(FontHandle fh):f(fh){}
~Font(){ releaseFont(f);}
FontHandle get() const { return f; }
private:
FontHandle f;
}
class Font
{
public:
explicit Font(FontHandle fh):f(fh){}
~Font(){ releaseFont(f);}
operator FontHandle() const { return f; }
private:
FontHandle f;
}