
假期归来第一天!!!!学习起来up up up ღ( ´・ᴗ・` )ღ比心
由条款13导入一个例子:使用智能指针如auto_ptr或
tr1: :shared ptr保存factory函数如createInvestment的调用结果:
std::tr1::shared_ ptr<Investment> pInv (createInvestment()); //见条款13
假设你希望以某个函数处理Investment对象,像这样:
int daysHeld (const Investment* pi) ; //返回投资天数
你想要这么调用它:
int days = daysHeld (pInv) ; //错误!
却通不过编译,因为daysHeld需要的是Investment*指针,你传给它的却是个类型为tr1::shared_ ptr<Investment>

本文探讨了在C++中使用RAII(Resource Acquisition Is Initialization)类进行资源管理时如何提供对原始资源的访问。通过智能指针如`unique_ptr`和`shared_ptr`的例子,解释了显式转换(如`get()`函数)和隐式转换(如重载`operator*`和`operator->`)的优缺点。强调了设计接口应易于正确使用且难以误用的原则,通常显式转换更安全,但隐式转换可能对用户更友好。每个RAII类都应该有一个方法来获取其所管理的资源。
最低0.47元/天 解锁文章
401

被折叠的 条评论
为什么被折叠?



