程序使用动态内存出于以下三种原因之一
1、程序不知道自己需要多少对象;
2、程序不知道所需对象的准确类型;

3、程序需要在多个对象间共享数据

shared_ptr的用法

可以指向特定类型的对象,用于自动释放所指的对象
eg: shared_ptr<CDlgPointCloud> PointCloudDlgPointer;//指向类型为CDlgPointCloud的对象PointCloudDlgPointer;

当然还有一个最安全的分配和使用动态内存的方法就是调用一个名为make_shared的标准库函数;

make_shared的用法

make_shared 在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr,与智能指针一样,make_shared也定义在头文件memory中;

当要用make_shared时,必须指定想要创建的对象类型,定义方式与模板类相同,在函数名之后跟一个尖括号,在其中给出类型;

如make_shared<int> p3 = make_shared<int>(42);

一般采用auto定义一个对象来保存make_shared的结果,如auto p1 =make_shared<int>(42);

shared_ptr与make_shared的用法相关推荐

  1. C++ 智能指针 shared_ptr、make_shared用法

    一.使用shared_ptr条件 C++版本11以上 需引入头文件 #include <memory> 否则编译会报错 error: 'shared_ptr' was not declar ...

  2. c++11 shared_ptr 与 make_shared源码剖析

    写在最前... 请支持原创~~ 0. 前言 所谓智能指针,可以从字面上理解为"智能"的指针.具体来讲,智能指针和普通指针的用法是相似的,不同之处在于,智能指针可以在适当时机自动释放 ...

  3. shared_ptr 和 make_shared 的使用(以及qt信号和槽连接)

    std::shared_ptr 是一种智能指针(本身就是一个对象,一个对象,一个对象,不是原始指针,重要的事情说三遍),指向一个对象.它能够记录多少个 shared_ptr 共同指向一个对象,从而消除 ...

  4. C++ make_shared() shared_prt()用法

    https://blog.csdn.net/u010164190/article/details/88315709 转载

  5. 【c++】4.std::shared_ptr、std::make_shared、 .get() 、.data()、void *p 的用法、裸指针

    std::shared_ptr.std::make_shared. .get() ..data().void *p 的用法.裸指针 (1)shared_ptr能够记录对象被引用的次数,主要被用来管理动 ...

  6. boost shared_ptr基本用法介绍

    一.介绍 shared_ptr包装了new操作符在堆上分配的动态对象,但他实现的是计数型的智能指针,shared_ptr早期的名字就是counter_ptr,可以自由拷贝和赋值,在任意的地方共享它,当 ...

  7. shared_ptrT make_shared( Args ... args );

    shared_ptr很好地消除了显式的delete调用,如果读者掌握了它的用法,可以肯定delete将会在你的编程字典中彻底消失. 但这还不够,因为shared_ptr的构造还需要new调用,这导致了 ...

  8. shared_ptr使用场景、陷阱、性能分析,使用建议

    1.std::shared_ptr使用场景 #include <iostream> #include <memory>using namespace std;shared_pt ...

  9. C++:shared_ptr以及一些常见的问题

    本文以vs2010中的std::tr1::shared_ptr为例,说明shared_ptr用法. 1.基本功能 shared_ptr提供了一个管理内存的简单有效的方法.shared_ptr能在以下方 ...

最新文章

  1. nginx 常见参数以及重定向参数配置
  2. 研究机器学习需要什么样的数学基础?
  3. 临河天气预报软件测试,临河天气预报15天
  4. ubuntu16 php mysql_Ubuntu16.04 搭建 LAMP(Ubuntu16.04 、apache 2.4.18、MySQL 5.7.22、PHP 7.0.28)...
  5. Paxos算法与Zookeeper分析
  6. 数据库高级知识——索引优化分析(一)
  7. java中对象的初始化过程
  8. ArcEngine中加载ArcGIS Server地图服务
  9. 如何听节拍器_如何用节拍器卡节拍?节拍器的使用方法!
  10. jsp基础速成精华讲解
  11. 点击清空文本框+++文本杠上敲回车提交
  12. 图书馆占座系统(六)
  13. 扣费克星-您的话费守护神 v1.42 新增联网程序管理扩展插件发布
  14. MATLAB-APP编程
  15. EPOCH, BATCH, INTERATION
  16. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(11)之支付管理及广告管理...
  17. 写作者网新浪微博通过认证加V
  18. 云服务器和真实服务器,个人网站主机选择原则 看配置也要看是不是有助于优化...
  19. Java编程思想之高内聚低耦合
  20. [益智]:找规律习题

热门文章

  1. mediaplayer 状态
  2. 因特服务器协议,Internet邮件服务协议
  3. 打不开“计算机管理”
  4. 人体红外传感器简明教程
  5. 认识vue.js(一)
  6. 关于把war包放在Tomcat的webapps目录下 启动服务 前端访问报404
  7. 业界分享 | 深度学习下的京东搜索召回技术
  8. Java阿里巴巴开发手册与JDK1.8API中文版下载
  9. 以色列初创企业Skyline AI获300万美元种子融资,红杉资本领投
  10. 樱花未开(更新完毕)