标签:
std::tr1::shared_ptr<Investment> pInv(createInvestment());假设希望以某个函数处理Investment对象,像这样:
int daysHeld(const Investment* pi); // 返回投资天数如果这样调用它:
int days = daysHeld(pInv); // 错误却通不过编译,因为daysHeld需要的是Investment*指针,传给它的却是个类型为tr1::shared_ptr<Investment>的对象.
int days = daysHeld(pInv.get()); // 将pInv内的原始指针传给daysHeld就像(几乎)所有智能指针一样,tr1::shared_ptr和auto_ptr也重载了指针取值操作符(operator->和operator*),它们允许隐式转换至底部原始指针.
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/yiranant/article/details/48144923