广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++11智能指针shared_ptr怎么使用
  • 286
分享到

C++11智能指针shared_ptr怎么使用

2023-06-19 10:06:00 286人浏览 安东尼
摘要

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

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

shared_prt的本身是一个类,所以它的初始化实际上就是调用shared_ptr类的构造函数。通过分析shared_ptr的构造函数,就可以准确把握shared_ptr初始化的方法。

default构造函数

函数原型:

constexpr shared_ptr() noexcept;

说明:

声明空shared_ptr

代码示例:

C++11智能指针shared_ptr怎么使用

空指针构造

函数原型:

constexpr shared_ptr(nullptr_t);

说明:

通过空指针构造shared_ptr,动作default构造函数动作相同。

代码实例

C++11智能指针shared_ptr怎么使用

由指针构造

函数原型:

explicit shared_ptr (U* p);

说明:

根据已有指针构造shared_ptr。

代码实例:

C++11智能指针shared_ptr怎么使用

注意事项

实例中展示的两种方式都合法,但是在第二种情况中应该理解,一旦构造了share_ptr,就表明s指向的string对象的内存管理已经交给ps1管理而不应该在通过s访问了(至少是非常小心的访问)。

第二种方式应该尽量避免。

拷贝构造

函数原型:

shared_ptr (const shared_ptr& x) noexcept;

说明:

由一个已有的shared_ptr创建新的share_ptr。其间会自动维护应用计数。

代码示例:

C++11智能指针shared_ptr怎么使用

程序输出:

C++11智能指针shared_ptr怎么使用

拷贝构造函数执行以后,引用计数增加,两个指针指向同一个对象。

移动构造

函数原型:

shared_ptr (shared_ptr&& x) noexcept;

说明:

由一个已有的shared_ptr创建新的share_ptr。作为参数的shared_pt同时会释放对内存的管理权利,整个构造过程结束后,引用计数不变。

代码示例:

C++11智能指针shared_ptr怎么使用

程序输出:

C++11智能指针shared_ptr怎么使用

内存管理由ps转移到了ps1。

修饰符说明

explicit:保证该构造函数不会被隐式调用

noexcept:该函数不会抛出异常,

constexpr:该函数可以在编译期间求值

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

--结束END--

本文标题: C++11智能指针shared_ptr怎么使用

本文链接: https://www.lsjlt.com/news/295588.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++11智能指针shared_ptr怎么使用
    本篇内容介绍了“C++11智能指针shared_ptr怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!shared_prt的本身是一个...
    99+
    2023-06-19
  • C++智能指针shared_ptr怎么使用
    本篇内容介绍了“C++智能指针shared_ptr怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是shared_ptr?C+...
    99+
    2023-06-29
  • C++智能指针shared_ptr
    目录1、什么是shared_ptr?2、shared_ptr支持哪些操作?3、如何创建shared_ptr的实例?4、什么是shared_ptr的引用计数?如何查看?5、shared...
    99+
    2022-11-13
  • C++11中的智能指针shared_ptr、weak_ptr源码解析
    目录1、前言2、源码准备3、智能指针概念4、源码解析4.1、shared_ptr解析4.1.1、shared_ptr4.1.2、__shared_ptr4.1.3、__shared_...
    99+
    2022-11-12
  • C++智能指针之shared_ptr如何使用
    这篇文章主要介绍“C++智能指针之shared_ptr如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++智能指针之shared_ptr如何使用”文章能帮助大家解决问题。std::share...
    99+
    2023-06-30
  • C++智能指针之shared_ptr详解
    目录共享指针的初始化方式常用成员函数shared_ptr内存模型make_shared的优缺点优点缺点引用计数比较运算符总结共享指针的初始化方式 1.裸指针直接初始化,但不能通过隐式...
    99+
    2022-11-13
  • C++中Boost的智能指针shared_ptr
    boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shar...
    99+
    2022-11-13
  • C++11智能指针weak_ptr怎么使用
    本篇内容主要讲解“C++11智能指针weak_ptr怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11智能指针weak_ptr怎么使用”吧!弱指针weak_ptr看起来更像shar...
    99+
    2023-06-19
  • C语言智能指针shared_ptr和weak_ptr怎么用
    这篇文章主要讲解了“C语言智能指针shared_ptr和weak_ptr怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言智能指针shared_ptr和weak_ptr怎么用”吧!w...
    99+
    2023-06-30
  • C++智能指针之shared_ptr的具体使用
    目录std::shared_ptr概念shared_ptr模板类shared_ptr的构造和析构shared_ptr赋值make_shared计数线程安全?enable_shared...
    99+
    2022-11-13
  • C语言 智能指针 shared_ptr 和 weak_ptr
    weak_ptr引入可以解决shared_ptr交叉引用时无法释放资源的问题。 示例代码: #include <iostream> #include <memory...
    99+
    2022-11-13
  • C++11中的智能指针怎么用
    本篇内容介绍了“C++11中的智能指针怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!函数原型:shared_ptr& oper...
    99+
    2023-06-19
  • C++特性之智能指针shared_ptr详解
    目录1.创建指针对象2.分离关联的原始指针3.与普通指针比较4.NULL检测shared_ptr 是C++11提供的一种智能指针类,它足够智能,可以在任何地方都不使用时自动删除相关指...
    99+
    2022-12-08
    C++智能指针shared_ptr C++智能指针 C++ shared_ptr
  • C++11 智能指针的具体使用
    目录智能指针的原理RAII智能指针的原理auto_ptr1.auto_ptr的使用及问题unique_ptrshared_ptrshared_ptr的循环引用智能指针的原理 RAII...
    99+
    2022-11-12
  • C++中智能指针最常用的shared_ptr和unique_ptr
    目录shared_ptr使用shared_ptr注意unique_ptrshared_ptr 基本用法: 可以通过构造函数, make_shared<T>辅助函数和res...
    99+
    2022-11-13
  • C++智能指针shared_ptr与weak_ptr的实现分析
    目录shared_ptrweak_ptr内存模型RefCnt 和 Mdel实现shared_ptr 实现weak_ptr 实现shared_from_this()循环引用shared...
    99+
    2022-11-13
  • C++11智能指针unique_ptr有什么作用
    这篇文章主要讲解了“C++11智能指针unique_ptr有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11智能指针unique_ptr有什么作用”吧!软件开发中有很多处理是...
    99+
    2023-06-19
  • C++中怎么使用智能指针
    这篇文章给大家介绍C++中怎么使用智能指针,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、为什么要使用智能指针一句话带过:智能指针就是帮我们C++程序员管理动态分配的内存的,它会帮助我们自动释放new出来的内存,从而...
    99+
    2023-06-20
  • 关于C++智能指针shared_ptr和unique_ptr能否互转问题
    C++中的智能指针最常用的是shared_ptr和unique_ptr,C++新手最常问的问题是我从一个函数中拿到unique_ptr,但要转成shared_ptr才能使用,要怎么...
    99+
    2022-11-13
  • C++11智能指针unique_ptr用法使用场景分析
    一、概述 C++ 标准模板库 STL(Standard Template Library) 一共给我们提供了四种智能指针:auto_ptr、unique_ptr、shared_ptr...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作