许多API直接引用资源,所以有时候你将不得不绕过资源管理对象,处理原始资源。
std::shared_ptr<Investment> pInv(createInvestment()); // 来自条款13
int daysHeld(const Investment* pi); // 返回投资的已持有天数
int days = daysHeld(pInv); // 错误!参数类型不匹配。
//int days = daysHeld(pInv.get()); // 可以,将pInv中的原始指针传递给daysHeld
一般有两种方式:显式转换和隐式转换。
显式转换
FontHandle getFont();