显示转换
在我们的资源管理类中,有时我们需要使用到我们的原始类,所以我们需要在资源管理类中提供对原始资源的访问接口,在智能指针中,都提供了一个get()函数,这个函数使得我们能够获得智能指针内部封装的原始指针,同时智能指针也重载了*运算符和->运算符使得我们可以访问内部指针指向的资源。
如果我们在我们自己的资源管理类中也同样的封装了一个原始类,同样的,我们需要提供我们的原始资源,对于一个字体的管理类。我们同样可以提供一个get()函数返回我们的原始资源。
如果想要获得FontHandle类型的 f 对象,则我们写一个get函数返回 成员 f;
隐式函数转换
上述的隐式函数转换是一种函数语法格式,成员函数的一种,用于将本类型的函数转换成为其他类型,其中的operator相当于一个标志符,说明该是一个隐式函数转换。
operator 目标类型() {
return 转换类型对象;
}
使用方式:
f表示获取调用隐式类型转换。
但是当采用隐式类型转换获取底层的值将会增加出错的几率。
这将导致两个对象管理同一资源,当其中一个对象将资源释放,则另一个资源将会悬空。