摘要: 资源管理类避免直接处理资源,但是许多APIs直接涉及资源,所以应该提供返回原始资源的函数。 tr1::shared_ptr和auto_ptr都提供一个get成员函数,用来执行显式转换,返回智能指针内部的原始指针(的复件)。 std::tr1::shared_ptr<Investment> pInv(createInvestment()); int daysHeld(const ... 阅读全文
posted @ 2012-01-14 22:49 lidan 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 并非所有的资源都是heap-based,对那种资源来讲,auto_ptr和shared_ptr这样的智能指针往往不适合作为资源掌管着。你可能需要 自己建立自己的资源管理类。 例如,处理类型为Mutex的互斥器对象,有lock和unlock两函数可用。 void lock(Mutex* pm); void unlock(Mutex* pm); class Loc... 阅读全文
posted @ 2012-01-14 21:22 lidan 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 资源是,一旦用了,将来必须还给系统,除了内存常见的还有文件描述符(file description)、互斥锁、图形界面中的笔刷、数据库连接 以及网络socket。考虑到异常、函数内多重回传路径、程序维护员软件改动却没有理解随之而来的冲击,发现资源管理的特殊手段还不很充分够用。 假设一个各式各样的投资类型继承的一个root class Investment: class Inve... 阅读全文
posted @ 2012-01-14 10:56 lidan 阅读(286) 评论(0) 推荐(0) 编辑