C++11中的智能指针怎么用

发布时间:2021-08-26 14:19:47 作者:chen
来源:亿速云 阅读:119

本篇内容介绍了“C++11中的智能指针怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

函数原型:

shared_ptr& operator= (const shared_ptr& x) noexcept;

说明:

从已有指针赋值给shared_ptr,共享数据管理权。

代码实例:

C++11中的智能指针怎么用

执行结果:

C++11中的智能指针怎么用

从输出结果可以看到ps和ps1计数,指针的取值。

注意事项:

ps1的声明和赋值是分两次进行的,只有这样才会执行赋值操作。下面的代码看起来虽然是赋值,但实际执行的是初始化操作(构造函数)。

C++11中的智能指针怎么用

移动赋值

函数原型:

shared_ptr& operator= (shared_ptr&& x) noexcept;

说明:

从已有指针赋值给shared_ptr,伴随数据管理权的转移。移动赋值和拷贝赋值的区别在于参数是否为右值引用。

代码实例:

C++11中的智能指针怎么用

执行结果:

C++11中的智能指针怎么用

从输出结果可以看到ps和ps1计数,指针的取值。

注意事项:

虽然拷贝赋值也不会导致内存泄漏,但是某些场景下,移动赋值可以更加准确的反映编程者的意图,可能更早的释放内存。

下面的代码执行的也是移动赋值。

C++11中的智能指针怎么用

“C++11中的智能指针怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. C++11智能指针和引用
  2. c++智能指针怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:iOS11如何实现拖拽交互

下一篇:Android触摸事件和mousedown、mouseup、click事件之间有什么关系

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》