文章目录

  • RAII
  • 构造函数
  • 析构函数
  • 赋值运算符重载
  • 解绑和重绑
  • 访问原始资源
  • 智能指针的比较
  • make_shared更常用的构造方式
  • 错误用法

上来我们直接提出疑问:何谓智能指针?它真的是指针吗?智能体现在何处?

说到智能指针,我们得先从一个名词RAII谈起。

RAII

RAII(Resource Acquisition Is Initialization)是由c++之父Bjarne Stroustrup提出的,中文翻译为资源获取即初始化,RAII要求,资源的有效期与持有资源的对象的生命期严格绑定,即由对象的构造函数完成资源的分配(获取),同时由析构函数完成资源的释放。在这种要求下,只要对象能正确地析构,就不会出现资源泄露问题。换句话说,就是我们使用对象来管理资源。

使用局部对象来管理资源的技术称为资源获取即初始化;这里的资源主要是指操作系统中有限的东西如内存、网络套接字等等,局部对象是指存储在栈的对象,它的生命周期是由操作系统来管理的,无需人工介入。

<

C++11 智能指针shared_ptr一篇足以相关推荐

  1. C++11智能指针shared_ptr、weak_ptr、unique_ptr用法

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105065859 智 ...

  2. C++11智能指针(unique_ptr、shared_ptr、weak_ptr)boost::scoped_ptr

    C++11智能指针(unique_ptr.shared_ptr.weak_ptr)_-码农小非-的专栏-CSDN博客_c++ shared_ptr weak_ptr 原创)智能指针拾遗 (原创)智能指 ...

  3. c++11新特性_【C++11新特性】 C++11智能指针之weak_ptr

    如题,我们今天要讲的是 C++11 引入的三种智能指针中的:weak_ptr. 在学习 weak_ptr 之前最好对 shared_ptr 有所了解.如果你还不知道 shared_ptr 是何物,可以 ...

  4. 使用 C++11 智能指针时要避开的 10 大错误

    http://blog.jobbole.com/104666/ 我很喜欢新的C++11的智能指针.在很多时候,对很多讨厌自己管理内存的人来说是天赐的礼物.在我看来,C++11的智能指针能使得C++新手 ...

  5. 十大愚蠢的错误,以避免与C ++ 11智能指针

    Top 10 dumb mistakes to avoid with C++ 11 smart pointers I love the new C++ 11 smart pointers. In ma ...

  6. 智能指针shared_ptr的用法

    智能指针shared_ptr的用法 2016-12-03 15:39 by jiayayao, 360 阅读, 0 评论, 收藏, 编辑 为了解决C++内存泄漏的问题,C++11引入了智能指针(Sma ...

  7. get方法报空指针_智能指针shared_ptr踩坑笔记

    平时写代码一直避免使用指针,但在某些场景下指针的使用还是有必要的.最近在项目中简单使用了一下智能指针(shared_ptr),结果踩了不少坑,差点就爬不出来了.痛定思痛抱着<Cpp Primer ...

  8. 详解C++11智能指针

    详解C++11智能指针 前言 C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用 ...

  9. 【C++11新特性】 C++11智能指针之weak_ptr

    http://blog.csdn.net/xiejingfa/article/details/50772571 原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/ar ...

最新文章

  1. 死猪脑”能复活吗?---评美国耶鲁大学医学院实验研究
  2. java 隐藏文件_java-如何仅列出jtree中的非隐藏文件和非系...
  3. 推荐一款github管理神器SourceTree
  4. JadePool应用范例:创建China软件项目
  5. Halcon算子学习:get_sheet_of_light_result
  6. 参考文献起止页码怎么写_毕业论文文献综述不会写?快来看看这篇文章(附含通用模板)...
  7. JEECG 前端JS国际化实现,采用i18n新技术方案
  8. 简单演示matlab生成三维平面的命令mesh
  9. android 创建目录/文件/读写文件
  10. 7-3 时间换算 (15 分)
  11. Linux程序包管理和yum用法
  12. 基于matlab的声波分析研究,基于MATLAB的声音信号分析与处理(共13页)
  13. 任意版本nodejs下载
  14. 综合布线系统工程设计规范GB50311-2007
  15. 字节跳动开启员工暴富计划,大手笔回购期权,有人最高能赚175%
  16. 【智能家居平台】天猫精灵 -- 平台剖析
  17. notepad++查看二进制.class文件——HexEditor插件(64/32位)安装教程
  18. StoryBoard运用技巧
  19. 你必须知道的最好的开源WEB 资源
  20. java new date 减一天_java日期增加一个月或减少一天

热门文章

  1. python 3.x语句print_Python 3.x语句print(1,2,3,sep=’.’)
  2. Head First Design Mode(2)-设计模式入门(策略模式)
  3. C++控制台RPG游戏具体实现思路: 任务系统
  4. 项目构建工具--webpack
  5. 停车场寻车是怎么实现的?车库寻车有什么好办法?
  6. Windows XP 注册表修改大全
  7. 异常篇 之 记录一次因“MIUI 优化”引发的无奈。。。
  8. 微信朋友圈图片显示缩放
  9. 企业视频远程办公会议通话系统EasyRTC在Windows2012部署运行出现“计算机中丢失VCRUNTIME140.dll”如何解决?
  10. 微信小程序使用echarts