c++中的智能指针auto_ptr
来源:互联网 发布:拼车app软件 编辑:程序博客网 时间:2024/05/29 17:33
auto_ptr有一个特性就是转移控制权是一个比较有意思的功能;智能指针在在进行拷贝操作或者赋值操作(=)的时候,都会把所包含的指针的控制权转移到新的变量上去,而变量会指向一个空指针;
这次的结果是str第二次打印的时候失败,因为str_ptr被传递给形参p,然后形参p获得了改智能指针的拥有权,而str_ptr失去了拥有权。
但是p没有在函数中北传出,在函数调用结束的时候,生命周期结束,所以str被delete;于是第二次打印str的时候,失败;
与实例1相反,p在函数调用的时候结束,传递给一个temp智能指针返回,temp在
auto_ptr<string> str_ptr2=getNOreturnPtr(str_ptr);
这句话结束的时候会被销毁,但是他同时把智能指针的拥有权转至给str_ptr2,因此,在打印第二次str变量的时候,str并没有被销毁,因此成功;
实例3str第二次打印的时候仍然成功的原因在于因为形参是进行的引用传值,因此auto_ptr在整个函数过程中并没有任何拥有权转让操作,因此str在第二次打印的时候并没有被销毁,故打印成功;
- 【C++】智能指针auto_ptr
- c++中的智能指针auto_ptr
- C++ 中的auto_ptr智能指针
- C++中的智能指针(auto_ptr)
- c++ auto_ptr智能指针详解
- 【C/C++和指针】auto_ptr智能指针
- 【C/C++】智能指针auto_ptr,share_ptr,unique_ptr
- STL中的auto_ptr智能指针用法(转)
- 深入理解C++中的智能指针auto_ptr
- c++中的智能指针auto_ptr解析
- C++中的智能指针auto_ptr,shared_ptr
- 【C++】智能指针auto_ptr的简单实现
- C++——模版:智能指针auto_ptr
- C++:auto_ptr智能指针的用法
- 【C++】智能指针auto_ptr/unique_ptr/shared_ptr/weak_ptr!!!
- auto_ptr C++智能指针
- 关于智能指针 auto_ptr
- auto_ptr 智能指针要点
- GCC升级安装
- rm用法
- 国内交流电频率和电压的历史渊源
- Java Web——tomcat开发模式配置
- Java程序员的推荐阅读书籍
- c++中的智能指针auto_ptr
- kde&Gnome间的切换
- 在 kde4桌面上找回任务面板
- linux adsl 网络设置
- C#两个复杂对象集合的比较
- 一些简单,零散的知识点。。
- 硬盘接口类型
- GObject-GSignal实现
- 取得Root身份登录