当前位置: 首页 > news >正文

宗亲网站开发网站开发php和c语言区别

宗亲网站开发,网站开发php和c语言区别,diy小程序开发平台,个人网站注册平台一、unique_ptr 在任何时刻,只能有一个指针管理内存。当指针超出作用域时,会自动释放内存,该类型指针不可拷贝(copy),但可移动(move)。 创建方式: 1)通过new…

一、unique_ptr

在任何时刻,只能有一个指针管理内存。当指针超出作用域时,会自动释放内存,该类型指针不可拷贝(copy),但可移动(move)。

  • 创建方式:

        1)通过new来创建;2)通过std::make_unique创建(推荐)

  • unique_ptr实现了*和->:

        1)可以通过->调用成员函数;2)可以通过*返回管理对象的引用,从而直接访问对象

  • 辅助函数:

        1)unique_ptr可以通过get()获得指向被管理对象的指针

        2)reset替换被管理对象

        3)release释放被管理对象

        4)swap交换被管理对象

        5)operator bool()const检查是否有关联的被管理对象

提出一个疑问 ,为什么unique_ptr有删除器,而不是使用delete呢?

其实答案就在delete中,什么时候使用delete释放资源呢?当然是使用new构建的时候,但是当我们不使用new的时候,就不能使用delete,故unique_ptr有自己的删除器。

二、shared_ptr

实现共享所有权方式来管理资源对象,这意味没有一个特定的std::shared_ptr拥有资源对象。相反,这些指向同一个资源对象的std::shared_ptr相互协助来确保该资源对象在不需要的时候被析构

  • 创建方式:

        1)通过new来创建;2)通过std::make_shared创建

  • 特点:

        1)基于共享所有权模式:多个指针能够同时指向同一个资源

        2)基于共享所有权,使用引用计数控制块管理资源对象的生命期

        3)提供拷贝构造函数和赋值重载函数;提供移动构造和移动赋值函数

        4)为了实现单个对象和一组对象的管理,添加了删除器类型

        5)在容器保存shared_ptr对象是安全

        6)shared_ptr重载了operator->和operator*运算符,因此它可以像普通指针一样使用

  • 引用计数器的作用:

        1)当新的shared_ptr对象与资源对象的地址关联时,则在构造函数中,将于此资源对象关联的引用计数增加1

        2)当任何shared_ptr对象超出作用域时,则在其析构函数中,将与资源对象关联的引用计数减1。如果引用计数为0,则表示没有其他shared_ptr对象与此资源对象关联,在这种情况中,它使用deleter删除器删除该资源对象

  • 辅助函数:

        1)get返回指向被管理对象的指针,不要使用

        2)reset替换被管理对象

        3)shared_ptr不提供release释放被管理对象的所有权的函数

        4)swap交换被管理对象

        5)operator bool()const检查是否有关联的管理对象

        6)重载operator*,operator->,访问被管理对象

三、weak_ptr 

弱引用指针weak_ptr是用来监视shared_ptr的生命周期。weak_ptr没有重载操作符*和->,因为他不与shared_ptr共享指针,不能操作资源,主要是通过shared_ptr获得资源的监测权,它的构造不会增加引用计数,它的析构也不会减少引用计数,只能用来检测shared_ptr中管理的资源是否存在。weak_ptr还可以用来返回this指针和解决循环引用的问题

  • weak_ptr构建

        当我们创建一个weak_ptr时,需要用一个shared_ptr实例来初始化weak_ptr,由于是弱共享,weak_ptr的创建并不会影响shared_ptr的引用计数值。可以通过use_count()方法来获得当前观测资源的引用计数。

  • 通过expired()方法判断所观测的资源是否已经被释放
  • 通过lock方法来获取所监视的shared_ptr
http://www.dtcms.com/a/534611.html

相关文章:

  • 宜昌皓月建设工程有限公司网站百度地图收录提交入口
  • 网站制作好后 怎样上线西部数码网站管理助手3.1
  • 做暧暧免费网站哪里有免费的网站模板下载 迅雷下载 迅雷下载软件
  • 北大青鸟的网站建设课程多少钱wordpress pixvideo
  • 有没有在线辅导家做的网站seo网站查询工具
  • 网站开发公司气氛wordpress 右侧空白
  • 深圳的知名网站设计有哪些重庆制作网站模板建站公司
  • 昌邑市建设局官方网站北辰网站开发
  • 合肥建设学校网站首页广西壮族自治区官网
  • 网站源码怎么弄丰功网站建设
  • 如何自已建网站云南住房建设厅网站
  • 国企网站建设合同网站的对比
  • 网站虚拟主机建设百度查重软件
  • 网站建设开发公司地址做装修那个网站好
  • 厦门h5网站建设老哥们给个uc能看的2021
  • 贵州网站建设培训哈尔滨网站建设团队
  • 长沙网站 建设推广世云网络东营百姓网免费发布信息网
  • 营销形网站广西智能网站建设制作
  • 竹溪县县建设局网站网站推广关键词排名
  • 青岛企业网站推广昆明网页制作
  • 哪家网站建设免费表格模板下载
  • 南充网站建设服务商艺术类考生有哪些专业
  • 婚恋网站排名怎么使用创客贴网站做图
  • 网站为什么百度不收录php是用来做网站的吗
  • 制作网站价格不一wordpress文章密码插件
  • 广东省公共资源交易中心平台网站seo博客
  • 手机淘宝网页版创维网站关键字优化
  • 怎么做网站有利于收录小网站链接怎么找
  • 公司注册网站需要什么资料久久建筑网如何获取积分
  • wordpress自定义字段筛选北京seo培训