effective c++ 学习笔记2----auto_ptr
2010-06-05 20:17
387 查看
auto_ptr可自动释放对象当对象退出时(在析构中)。但是不能有多个这种指针指向同一个对象,不然会有多次释放。针对这个问题,这个类型的指针做法是当该类型的指针的拷贝函数或者赋值操作时将前一个指针设为空。也即只允许一个指针指向一个对象。
可用tr1::shared_ptr指向这样的对象,能自动释放,也能有多个指针指向同一个对象。
他们不能用于array。因为自动删除用的是delete, 而不是delete[]. 可用boost的几个指针实现这样的需求(boost::scoped_array, boost::shared_array )。
对于tr1::shared_ptr, 如果不想自动释放指向的对象, 可执行shared_ptr的删除器。
auto_ptr和shared_ptr使用get函数获得原始指针(比如指向int对象的智能ptr的原始指针的类型是int *)的复件。同时重载了->和*。
dangle: 虚吊, 悬空,
可用tr1::shared_ptr指向这样的对象,能自动释放,也能有多个指针指向同一个对象。
他们不能用于array。因为自动删除用的是delete, 而不是delete[]. 可用boost的几个指针实现这样的需求(boost::scoped_array, boost::shared_array )。
对于tr1::shared_ptr, 如果不想自动释放指向的对象, 可执行shared_ptr的删除器。
auto_ptr和shared_ptr使用get函数获得原始指针(比如指向int对象的智能ptr的原始指针的类型是int *)的复件。同时重载了->和*。
dangle: 虚吊, 悬空,
相关文章推荐
- c++ 模板学习笔记:类模板模拟auto_ptr智能指针(权哥)
- C++ Standard Stl -- SGI STL源码学习笔记(01) auto_ptr
- STL学习笔记——auto_ptr
- STL学习笔记 ---- 神秘的auto_ptr
- 智能指针基础std::auto_ptr与new、delete的重载学习笔记
- c++ standard library 学习笔记-auto_ptr<T> 注意事项
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- [学习笔记]Disable Auto Zoom in Input “Text” tag - Safari on iPhone
- 黑马程序员--IOS_学习笔记_内存管理_@autorelease
- MySQL字段自增长AUTO_INCREMENT的学习笔记
- Effective C++学习笔记 条款04:确定对象被使用前已先被初始化
- Effective C++学习笔记
- smart ptr 学习理解笔记
- Effective C++学习笔记 条款07:为多态基类声明virtual析构函数
- (大卫的阅读笔记)More Effective C++ Item 附2:一个auto_ptr的实现实例
- Boost学习笔记----SmartPointer之Boost::scoped_ptr
- C++ 学习笔记(2)变量和基本类型(复合类型:引用、指针)、const、constexpr、typedef(using)、auto、decltype
- 《Effective C++ 》学习笔记-第六章 条款33:避免遮掩继承而来的名称 Avoid hiding inherited names
- 《Effective C++ 》学习笔记-第六章 内存简单概念 以及 空类(empty class 条款39略微提到)