摘要: C++智能指针 智能指针与异常 如果使用智能指针, 如果程序块过早的结束, 智能指针能保证在内存不再需要时进行释放. (特别是在有多个出口的函数中 -- 虽然应尽量避免设计这样的函数, 但凡事总有例外 -- 此时使用智能指针来自动释放内存是非常方便的) 对于异常处理来说, 考虑下面两个函数, 当程序 阅读全文
posted @ 2016-10-04 13:26 阿Hai 阅读(1877) 评论(0) 推荐(0) 编辑
摘要: C++智能指针 unique_ptr unique_ptr 独占所指向的对象, 同一时刻只能有一个 unique_ptr 指向给定对象(通过禁止拷贝语义, 只有移动语义来实现), 定义于 memory (非memory.h)中, 命名空间为 std. 标准库早期版本中定义了 auto_ptr, 它具 阅读全文
posted @ 2016-10-04 13:18 阿Hai 阅读(36859) 评论(0) 推荐(4) 编辑
摘要: C++智能指针 weak_ptr weak_ptr 是一种不控制对象生命周期的智能指针, 它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理的是那个强引用的 shared_ptr. weak_ptr只是提供了对管理对象的一个访问手段. weak_ptr 设计的目的是为配合 shar 阅读全文
posted @ 2016-10-04 13:11 阿Hai 阅读(28108) 评论(0) 推荐(3) 编辑
摘要: C++智能指针 shared_ptr shared_ptr 是一个标准的共享所有权的智能指针, 允许多个指针指向同一个对象. 定义在 memory 文件中(非memory.h), 命名空间为 std. shared_ptr 是为了解决 auto_ptr 在对象所有权上的局限性(auto_ptr 是独 阅读全文
posted @ 2016-10-04 13:03 阿Hai 阅读(90616) 评论(0) 推荐(0) 编辑
摘要: C++智能指针 auto_ptr auto_ptr 是一个轻量级的智能指针, 定义于 memory (非memory.h)中, 命名空间为 std. auto_ptr 适合用来管理生命周期比较短或者不会被远距离传递的动态对象, 最好是局限于某个函数内部或者是某个类的内部. 使用方法: std::au 阅读全文
posted @ 2016-10-04 12:42 阿Hai 阅读(1071) 评论(0) 推荐(0) 编辑