千家信息网

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

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"C++11智能指针shared_ptr怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2026年11月04日C++11智能指针shared_ptr怎么使用

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

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

default构造函数

函数原型:

constexpr shared_ptr() noexcept;

说明:

声明空shared_ptr。

代码示例:

由空指针构造

函数原型:

constexpr shared_ptr(nullptr_t);

说明:

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

代码实例:

由指针构造

函数原型:

explicit shared_ptr (U* p);

说明:

根据已有指针构造shared_ptr。

代码实例:

注意事项

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

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

拷贝构造

函数原型:

shared_ptr (const shared_ptr& x) noexcept;

说明:

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

代码示例:

程序输出:

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

移动构造

函数原型:

shared_ptr (shared_ptr&& x) noexcept;

说明:

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

代码示例:

程序输出:

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

修饰符说明

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

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

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

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

函数 指针 代码 原型 实例 示例 管理 输出 智能 内存 内容 动作 实际 对象 情况 拷贝 指向 方式 更多 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 互联网科技工作委员会主任 掌上梦互联网科技 海南科技产业互联网平台 互联网科技公司招聘 世界互联网科技公司市值排名 广州市恰铎互联网科技有限公司 坤平互联网科技 广西互联网科技孵化中心 明优互联网科技有限公司 国大互联网教育科技有限公司薪资 互联网金融科技元年 东营紫格互联网科技 互联网科技包装股 青岛易易互联网科技 10位科技互联网大佬 互联网领先科技成果宣传视频 互联网科技创业计划的风险分析 科技互联网企业在行动 如何强化互联网金融科技 金融科技还是互联网 广州凡科互联网科技 成都互联网科技公司工作好不好 中国互联网十大科技股排名 迪庆互联网科技招生 互联网数据科技专业 本届互联网大会上的黑科技 九思连强互联网电子科技有限公司 互联网科技和医药行业 恒生科技互联网指数十大成分股
0