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

公司网站建设审批流程小程序h5页面

公司网站建设审批流程,小程序h5页面,appapp下载安装官方免费下载,网站数据库建设计划书本节介绍最后一个智能指针——weak_ptr智能指针。 1.介绍 weak_ptr智能指针也是以模板类的方式实现的。同样定义在<memory>头文件&#xff0c;并位于std命名空间中。在使用前需包含这两条语句。 C11虽然将weak_ptr当做智能指针&#xff0c;但该类型通常不单独使用&#…

        本节介绍最后一个智能指针——weak_ptr智能指针。

1.介绍

        weak_ptr智能指针也是以模板类的方式实现的。同样定义在<memory>头文件,并位于std命名空间中。在使用前需包含这两条语句。

        C++11虽然将weak_ptr当做智能指针,但该类型通常不单独使用,只能与shared_ptr类型指针搭配使用。通过weak_ptr指针,我们可以获取shared_ptr指针的状态信息,例如有多少个shared_ptr指向同一片堆内存,指向的堆内存是否被释放等。

        注意,weak_ptr指针的指向与shared_ptr指针相同时,weak_ptr指针不会使指向堆内存的引用计数加1;同样,weak_ptr指针释放时,引用计数也不会减1。即weak_ptr不影响所指堆内存空间的引用计数。

        weak_ptr没有重载*与->运算符,因此,weak_ptr指针只能访问所指堆内存,不能修改。

2.weak_ptr用法 

        (1)创建weak_ptr指针

        1.创建一个空指针

weak_ptr<int> wp1;

        2.根据已有指针,创建新指针。

weak_ptr<int> wp2 (wp1);

        创建的wp2指针指向的堆内存空间与wp1相同。 

        3.利用shared_ptr指针初始化。

shared_ptr<int> sp (new int);
weak_ptr<int> wp3 (sp);

        (2)成员方法

  • operator=()——重载 = 赋值运算符,weak_ptr 指针可以直接被 weak_ptr 或者 shared_ptr 类型指针赋值。
  • swap(x)—— x 表示同类型的 weak_ptr 指针,该函数可以互换 2 个同类型 weak_ptr 指针的内容。
  • reset()——将当前 weak_ptr 指针置为空指针。
  • use_count()——查看指向与当前 weak_ptr 指针指向相同的 shared_ptr 指针的数量。
  • expired()——判断当前 weak_ptr 指针为否过期(指针为空,或者指向的堆内存已经被释放)。
  • lock()——如果当前 weak_ptr 已经过期,则该函数会返回一个空的 shared_ptr 指针;反之,该函数返回一个和当前 weak_ptr 指向相同的 shared_ptr 指针。

3.使用场景

        (1)解决shared_ptr的循环引用问题。 

        循环引用是指两个或多个对象通过shared_ptr互相引用,导致引用计数永不为0,从而造成内存泄漏。使用weak_ptr代替shared_ptr可以打破这种循环引用。

        (2)缓存与观察者模式

        在缓存系统与观察者模式中,weak_ptr可以用于观测对象的生命周期。例如,缓存系统用weak_ptr存储对象的引用,当对象被销毁时,缓存自动失效。

4.总结

         weak_ptr依赖于shared_ptr使用。更像是shared_ptr的一种辅助工具。具有以下特点:

        1.weak_ptr不会影响指向对象的引用计数。

        2.weak_ptr依赖于shared_ptr使用。

        3.不影响对象生命周期。当weak_ptr指向对象被销毁,它会自动变为空指针。

http://www.dtcms.com/a/575894.html

相关文章:

  • 免费自助建站网站不提交表单
  • 建手机网站款软件淘宝直播要先建设个网站吗
  • 多网合一网站平台建设设计logo的软件有哪些
  • 嵌入式培训机构排名前十各地持续优化防控措施
  • 企业网站管理上海快速建站
  • 汽车建设网站开发流程自学建网站做网站优化
  • 广州建站外贸网站网站管理助手3.0
  • 个人网站如何在百度上做推广有哪些可以在线做app的网站有哪些
  • 自助建设手机网站wordpress调字体大小
  • 峨眉山有做网站的电话App网站建设 高品质网站建设
  • 怎么添加网站背景音乐8图片这样的网站怎么做的
  • 性能网站建设网站建设优化汕头
  • 深圳哪里有做网站推广的小型网站建设方案
  • 看设计比较好的网站网站未备案或已封禁
  • 江阴市住房和城乡建设局网站微信公众号运营策划方案
  • 视频弹幕网站怎么做的如何建立一个网站查询数据
  • 济南 网站开发陕西手机网站建设
  • 如何做一个导航网站百度网页版网址链接
  • 上海注册济南软件优化网站
  • 网站设计深圳公司商城版免费网站制作
  • 二级网站建设费用用python导入wordpress
  • 营销型网站如何策划wordpress模版seo
  • 网站加载页模板网站开发整体流程
  • wordpress调查插件网站seo应用
  • 网站开发技术包括哪些上海闵行龙湖天街
  • php在网站开发中的作用远涛网站建设
  • 德庆网站建设价格做网站需要学会些什么
  • 湛江做寄生虫网站百度免费推广怎么做
  • 整站seo包年费用wordpress栏目页打不开
  • 家具定制东莞网站建设个人备案网站做淘宝客可以