摘要: 这一节也比较简单,先假设我们有如下的函数:int foo();void memFoo(shared_ptr pw, int foo);现在假设我们要调用memFoo函数:memFoo(new W, foo());但是这样写编译是通不过的,我们可以改造为:memFoo(shared_ptr(new W... 阅读全文
posted @ 2014-11-17 15:53 依然冷月 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 这一节比较简单,可以总结为以下:std::string *stringPtr1 = new std::string;std::string *stringPtr2 = new std::string[100];..delete stringPtr1; //... 阅读全文
posted @ 2014-11-17 15:17 依然冷月 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 引言资源管理类是防止资源泄漏的有力武器,但是许多APIs直接指涉资源,除非你发誓永不使用这样的APIs,否则只得绕过资源管理对象(resource-managing objects)直接访问原始资源(raw resources)。例如在条款13中引入了智能指针如auto_ptr或tr1::share... 阅读全文
posted @ 2014-11-17 14:54 依然冷月 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 第一节 条款13中讲到“资源取得的时机便是初始化时机”并由此引出“以对象管理资源”的概念。通常情况下使用std中的auto_ptr(智能指针)和tr1::shared_ptr(引数智能指针)作为管理资源的对象。事实上,这种管理方法十分有效。但是,auto_ptr和tr1::shared_ptr只... 阅读全文
posted @ 2014-11-17 14:32 依然冷月 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 这一节基本讲述的是将资源放进管理对象,防止忘记释放资源。1.一般New和Delete使用场景void fun() { SimpleClass* pSimpleClass1 = new SimpleClass; .... // 如果这中间发生异常返回,则delete pSimpl... 阅读全文
posted @ 2014-11-17 13:51 依然冷月 阅读(171) 评论(0) 推荐(0) 编辑