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

本篇内容介绍了“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中的智能指针怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


当前名称:C++11中的智能指针怎么用
URL地址:http://scyanting.com/article/ghgdie.html