关于auto_prt
来源:互联网 发布:linux驱动常问面试题 编辑:程序博客网 时间:2024/06/05 10:23
auto_prt is NOT copy-constructible and assignable.。 所以要特别注意:
1. 不能用于STL containers:
http://www.devx.com/tips/Tip/13606
2. 作为函数参数时:onst reference是智能指针作为参数传递的底线
1)按值传递时,函数调用过程中在函数的作用域中会产生一个局部对象来接收传入的auto_ptr(拷贝构造),这样,传入的实参auto_ptr就失去了其对原对象的所有权,而该对象会在函数退出时被局部auto_ptr删除。如下例:
void f(auto_ptr<int> ap)
{cout<<*ap;}
auto_ptr<int> ap1(new int(0));
f(ap1);
cout<<*ap1;//错误,经过f(ap1)函数调用,ap1已经不再拥有任何对象了。
2)引用或指针时,不会存在上面的拷贝过程。但我们并不知道在函数中对传入的auto_ptr做了什么,如果当中某些操作使其失去了对对象的所有权,那么这还是可能会导致致命的执行期错误。
结论:const reference是智能指针作为参数传递的底线。
3. 可以用shared_prt代替auto_ptr- 关于auto_prt
- auto_prt(源码学习)
- 智能指针auto_prt的使用(c++学习笔记)
- 智能指针auto_prt的使用(c++学习笔记)
- 智能指针auto_prt的使用(c++学习笔记)
- 关于
- 关于
- 关于++,--
- 关于#
- 关于。。。
- 关于
- 关于......
- 关于
- 关于
- 关于****
- 关于
- 关于!
- 关于++
- LCS(子串必须连续)
- C语言中的经典小程序6
- Http介绍
- jdk动态代理实现原理
- Ext.net 中 GridPanel新增明细时从后台取 单据编号 赋给前台列
- 关于auto_prt
- 数据重定向和 /dev/null
- jquery对象和DOM对象
- Ext.Net 后台获取GridPanel当前选中行
- Android 判断应用 第一次启动
- ios tableView那些事(四)tableView添加标题,头尾和改变cell的宽度
- poj 1419 Graph Coloring(无向图的最大独立集)
- DocumentBuilder issue due to imcompatible jars
- POJ 2196进制转换