1  智能指针std::shared_ptr相关知识和如何使用

我们这里先说下智能指针std::shared_ptr,因为我看到我我们项目c++代码里面用得很多,我不是不会,所以记录学习下

先让ubuntu终端支持c++11,如果自己的电脑还没配置号,可以先看下我的这篇博客linux之让终端支持C++11/14编译cpp文件

1)  所在的头文件

#include

2)  介绍:

shared_ptr是一种智能指针(smart pointer),作用有如同指针,但会记录有多少个shared_ptrs共同指向一个对象。这便是所谓的引用计数(reference counting),比如我们把只能指针赋值给另外一个对象,那么对象多了一个智能指针指向它,所以这个时候引用计数会增加一个,我们可以用shared_ptr.use_count()函数查看这个智能指针的引用计数,一旦最后一个这样的指针被销毁,也就是一旦某个对象的引用计数变为0,这个对象会被自动删除,当我们程序结束进行return的时候,智能指针的引用计数会减1,不知道我理解有没有问题.有的话请老铁们指出.

3)  share_ptr的三种初始化方法

1.通过一个指向堆上申请的空间的指针初始化(切记不要用栈上的指针,否则,当智能指针全部释放控制权(栈中的对象离开作用域本身就会析构一次),将会析构对象,导致出错)

比如如下

int a = new int(100);

std::shared_ptr ptr(a); //我们不能写成std::shared_ptr ptr = a;这样写错误,不行你编译运行看下,编译不过

2.  通过make_shared函数得到

std::shared_ptr ptr1 = std::make_shared(

c语言 ptr 用法,C++之智能指针std::shared_ptr简单使用和理解相关推荐

  1. C++ 智能指针std::shared_ptr简单使用和理解

    参考:https://blog.csdn.net/u011068702/article/details/83692838 1  智能指针std::shared_ptr相关知识和如何使用 我们这里先说下 ...

  2. C++之智能指针std::shared_ptr简单使用和理解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程 1  智能指针std::shared_ptr相关知识和如何使用 我们这里先说下智能指针std::sha ...

  3. C++笔记:智能指针 std::shared_ptr

    1. 语法 std::shared_ptr<类型> 变量名称{}: std::shared_ptr<int> ptrA{};std::shared_ptr<int> ...

  4. C++11 智能指针之shared_ptr

    0.Overview 在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃.程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的.比如: 有些内存资源已经被释 ...

  5. C++ 实现智能指针:shared_ptr 和 unique_ptr

    简 述: C++11 智能指针的深入分析,和动手实现简版的智能指针 std::shared_ptr .std::unique_ptr 文章目录 背景 std::shared_ptr 原理 代码 ref ...

  6. C++智能指针:更简单、更高效的内存管理方法

    C++智能指针:从新手到高手的心理密码C++ Smart Pointers: Psychological Passcodes from Beginner to Expert 智能指针简介 (Intro ...

  7. 智能指针之shared_ptr易错点05

    一 shared_ptr易错点 1 慎用裸指针给shared_ptr赋值 例1 class A {public:A() {};A(int i) {m_i=i;cout<<"A&q ...

  8. 【C++11新特性】 C++11智能指针之shared_ptr

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

  9. C++智能指针之shared_ptr

    C++智能指针之shared_ptr 前言 一.Shared_ptr 1.1 shared_ptr类的操作 1.2 make_shared函数 1.3 shared_ptr的拷贝赋值 1.4 shar ...

最新文章

  1. ORM对mysql数据库中数据进行操作报错解决
  2. java 项目使用 ajaxfileupload
  3. oracle10g 学习 方向DBA三
  4. 【Windows 逆向】CheatEngine 工具 ( CheatEngine 简介 | 使用 Lazarus 编译 CE 源码 | CheatEngine 相关文档资料 )
  5. 二十万字C/C++、嵌入式软开面试题全集宝典一
  6. 3.QT中QCommandLineParser和QCommandLineOption解析命令行参数
  7. ssh首次连接时提示yes/no
  8. php 上传文件简单实例,php文件上传的简单实例
  9. es 吗 查询必须有sort_ElasticSearch DSL之From/Size,Sort
  10. nginx php 防止跨站,Nginx下多网站单独php-fpm进程目录权限防跨站
  11. Python机器学习:梯度下降法007使用scikit中的随机梯度下降法
  12. Codeforces 484E Sign on Fence(是持久的段树+二分法)
  13. FAT32文件系统结构
  14. 口碑营销遇见互联网,企业如何做好网络口碑营销?
  15. 裂变活动的5个关键步骤?
  16. 解决MarkDown上传本地图片无法显示
  17. kprobe 的 3 种使用
  18. jLBJwOvvyU
  19. 工控网关linux用什么芯片,重庆工控嵌入式主板原理,工业网关怎么挑
  20. 中国联通dns服务器未响应,关于光猫设置的说明和常见问题

热门文章

  1. 水淼·关键词网址采集器
  2. object...object和object[]...obj[]的区别
  3. ​大数据和云计算技术周报(第37期)
  4. Python入门习题大全—— 3 的倍数
  5. 车间动态调度的研究方法
  6. 大型企业网络安全解决方案
  7. CSS 属性 content 有什么作用? 有什么应用?(琐碎知识点整理)
  8. Vin码/车架号扫描识别sdk技术
  9. 数据孤岛下的新破局 Real Time DaaS:面向 AP+TP 业务的数据平台架构
  10. 解决TraceCompass网站打不开和Stackoverflow显示不全的问题