auto_ptr的一个例子
来源:互联网 发布:现在淘宝开店要收费吗 编辑:程序博客网 时间:2024/04/29 16:17
例子:
执行结果如下:
ewuming/morgan> ./a.out
string2: 5 string2 address: 0x804b008
string2: hello
str1 is an smart pointer!!! : 0x804b008
!!!!!!! : 0
str1 content after reset: world!
auto_ptr的根本原理:
智能指针的关键技术:在于构造栈上对象的生命期控制堆上构造的对象的生命期.因为在智能指针的内部,存储着堆对象的指针,而且在构析函数中调用delete行为。
如果几个auto_ptr指向同一个对象,那么,退出的时候,每个auto_ptr都会执行delete操作。程序最终crash。
smart pointer is smart, however, man is most of important.
Other experience:
1,auto_ptr存储的指针应该为NULL或者指向动态分配的内存块。
2,auto_ptr存储的指针应该指向单一物件(是new出来的,而不是new[]出来的)。
3,两个auto_ptr对象不会同时指向同一块内存块。要明白2个auto_ptr对象赋值会发生什么。
4,千万不要把auto_ptr对象放在容器中。
5,当将auto_ptr作为函数参数时,最好声明为const auto_ptr<T>&(by const ref).当函数返回值可以简单的传值(by value).
Web links:
http://blog.csdn.net/cyblueboy83/archive/2007/09/20/1792463.aspx
- auto_ptr的一个例子
- auto_ptr的一个简单例子
- auto_ptr 的一个实现
- Vs2005 auto_ptr的一个bug
- std::auto_ptr 官网例子
- std::auto_ptr 官网例子
- More Effective C++ 读书摘要(auto_ptr的一个实现)
- 一个类似auto_ptr<>用于动态分配数组的智能指针
- More Effective C++ 读书摘要(auto_ptr的一个实现)
- vs2005里auto_ptr的指针赋值一个陷阱
- 怎样正确构造一个auto_ptr?
- 智能指针auto_ptr简单使用例子
- auto_ptr源码解析以及例子 --auto_ptr_ref
- 一个触发器的例子
- LineDDA的一个例子
- 一个函数的例子
- 一个触发器的例子
- DirectX的一个例子
- GNU C 扩展之__attribute__ 机制简介
- Java对String字符串对象的创建,管理和“+”运算符的实现
- uml(1)
- 如何让WM连接Activesyn走手机网络
- mouseout 与 mouseleave
- auto_ptr的一个例子
- java 排序总汇
- 静态页面获取参数
- asp.net 禁止缓存
- JavaScript中的preventDefault和 stopPropagation
- 优派显示器一闪就灭解决案例
- VS2005快捷键大全
- 基础Web应用程序开发
- JS 常用验证