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

临海网站建设2023年商标注册流程图

临海网站建设,2023年商标注册流程图,unn建站,陕西建设厅执业资格注册中心网站此篇文章就从以下几个方面出发#xff0c;带你了解智能指针的方方面面1.为什么需要智能指针当我们开辟内存并使用的时候#xff0c;我们的顺序应该是这样#xff1a;开辟内存-》使用内存-》释放内存问题就出现在第三步#xff0c;开辟好了#xff0c;也使用了#xff0c;…此篇文章就从以下几个方面出发带你了解智能指针的方方面面1.为什么需要智能指针当我们开辟内存并使用的时候我们的顺序应该是这样开辟内存-》使用内存-》释放内存问题就出现在第三步开辟好了也使用了但是释放的时候出现了问题可能是malloc没有释放也可能是抛异常之后跳过了回收不管怎样此时就会发生内存泄漏。2.内存泄漏之后内存使用空间的减小运行卡顿死机等。内存泄漏可以分为堆内存泄漏(Heap leak) 堆内存指的是程序执行中依据须要分配通过malloc / calloc / realloc / new等从堆中分配的一块内存 用完后必须通过调用相应的 free或者delete 删掉。假设程序的设计错误导致这部分内存没有被释放那 么以后这部分空间将无法再被使用就会产生Heap Leak。系统资源泄漏 指程序使用系统分配的资源比方套接字、文件描述符、管道等没有使用对应的函数释放掉导致系统 资源的浪费严重可导致系统效能减少系统执行不稳定。解决办法知道即可通过内存泄漏的一些检查工具这里可以参考其他博客此篇不做详解。3.如何避免内存泄漏\1. 工程前期良好的设计规范养成良好的编码规范申请的内存空间记着匹配的去释放。ps这个理想状 态。但是如果碰上异常时就算注意释放了还是可能会出问题。需要下一条智能指针来管理才有保证。 2. 采用RAII思想或者智能指针来管理资源。 3. 有些公司内部规范使用内部实现的私有内存管理库。这套库自带内存泄漏检测的功能选项。 4. 出问题了使用内存泄漏工具检测。ps不过很多工具都不够靠谱或者收费昂贵。简单可以分为内存泄漏之前的预防事后的检查这里要讲的就是事前的预防。4.智能指针我们知道在类创建的时候会调用构造函数在析构的时候会调用析构函数所谓的智能指针其实就是将创建的对象并不直接创建而是交给一个模板类通过这个模板类来帮助我们管理。这里说三种智能指针的设计auto_ptr // C库中的智能指针都定义在memory这个头文件中 #include memory class Date { public:Date() { cout Date() endl;}~Date(){ cout ~Date() endl;}int _year;int _monthint _day; }; int main() {auto_ptrDate ap(new Date);auto_ptrDate copy(ap);ap-_year 2018;return 0; }这是它的使用下面看一下源代码templateclass T class auto_ptr { T* p; public: auto_ptr(T* s) :p(s) {} ~auto_ptr() { delete p; } auto_ptr(auto_ptr a) { p a.p; a.p NULL; } auto_ptr operator(auto_ptr a) { delete p; pa.p; a.p NULL; return *this; } T operator*() const { return *p; } T* operator-() const { return p; } }; 可以看到当它作为智能指针赋值的时候会出现讲前面置空的情况如果我们之后还需要使用前面一个就会发生报错。不过这里简单的模拟实现一个 templateclass Kclass auto_ptr{public:auto_ptr(K* ptr):_ptr(ptr){} ​~auto_ptr{if (_ptr){cout delate endl;delete _ptr;_ptr nullptr;}} ​//auto k(auto k1)auto_ptr(auto_ptrK k1):_ptr(k1._ptr){k1._ptr nullptr;} ​//一些指针的操作K operator(){return *_ptr;} ​K* operator*(){return _ptr;} ​ ​private:K* _ptr;};不推荐平时也不会用看看就好。shared_ptr顾名思义分享指针相比上一个它的原理就简单得多首先接管一个对象如果同时有多个对象一起管理那就在这个对象的计数器上1在取消管理的时候计数器-1如果为0则没有对象需要管理进行析构。这里直接进行模拟实现原理比较简单就不再细说看代码了解即可。 shared_ptr(K* ptr):_ptr(ptr),_count(new int (1)){} ​~shared_ptr(){Release();} ​shared_ptr(const shared_ptrK k1):_ptr(k1._ptr), _count(k1.count){(*_count);} ​shared_ptr operator(const shared_ptrK k1){if (k1._ptr ! _ptr){Release(); ​_ptr k1._ptr;_count k1._count;(*_count);}} ​K operator(){return *_ptr;} ​K* operator*(){return _ptr;}K* get(){ ​return _ptr;} ​private:K* _ptr;int* _count;};这里要注意的一点是shared_ptr并不是完全都是好的比方说下面这种场景有一个双向链表的两个节点 K,K1K的下一个节点是K1,也就是说现在K的计数应该为2。K1的上一个节点是K,也就是说现在K1的计数也为2。此时如果我要析构K,K1,首先应该析构K但是K的析构只会减一因为它的地址还被K1保留那我要析构就要先去析构K1但是K1的节点也被K保留就会出现循环引用导致报错。为了解决这个问题shared_ptr又加了一种指针——week_ptr,即弱指针它使用的时候并不会将count也就解决了析构的时候出现的减不到零的情况。模拟实现 templateclass Kclass weak_ptr{weak_ptr():_ptr(nullptr){} ​weak_ptr(const shared_ptrK K1):_ptr(ptr){} ​weak_ptr operator(const shared_ptrK K1){if (K1.get() ! _ptr){_ptr K1._ptr;} ​return *this;} ​K operator(){return *_ptr;} ​K* operator*(){return _ptr;} ​private:K* _ptr;};这样就不会出现循环引用的问题感谢观看希望这篇文章能带你初步了解智能指针的思想和模拟实现。
文章转载自:
http://www.morning.zdzgf.cn.gov.cn.zdzgf.cn
http://www.morning.nspzy.cn.gov.cn.nspzy.cn
http://www.morning.tpfny.cn.gov.cn.tpfny.cn
http://www.morning.thlr.cn.gov.cn.thlr.cn
http://www.morning.xgkxy.cn.gov.cn.xgkxy.cn
http://www.morning.frpm.cn.gov.cn.frpm.cn
http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn
http://www.morning.cgbgc.cn.gov.cn.cgbgc.cn
http://www.morning.hbjqn.cn.gov.cn.hbjqn.cn
http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn
http://www.morning.shawls.com.cn.gov.cn.shawls.com.cn
http://www.morning.gccrn.cn.gov.cn.gccrn.cn
http://www.morning.ybshj.cn.gov.cn.ybshj.cn
http://www.morning.zsgbt.cn.gov.cn.zsgbt.cn
http://www.morning.fslrx.cn.gov.cn.fslrx.cn
http://www.morning.bxch.cn.gov.cn.bxch.cn
http://www.morning.pprxs.cn.gov.cn.pprxs.cn
http://www.morning.wlnr.cn.gov.cn.wlnr.cn
http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn
http://www.morning.hypng.cn.gov.cn.hypng.cn
http://www.morning.nsppc.cn.gov.cn.nsppc.cn
http://www.morning.hbywj.cn.gov.cn.hbywj.cn
http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.ogzjf.cn.gov.cn.ogzjf.cn
http://www.morning.jrksk.cn.gov.cn.jrksk.cn
http://www.morning.pctsq.cn.gov.cn.pctsq.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.tbksk.cn.gov.cn.tbksk.cn
http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn
http://www.morning.mlbn.cn.gov.cn.mlbn.cn
http://www.morning.coatingonline.com.cn.gov.cn.coatingonline.com.cn
http://www.morning.ktfnj.cn.gov.cn.ktfnj.cn
http://www.morning.bccls.cn.gov.cn.bccls.cn
http://www.morning.ffbl.cn.gov.cn.ffbl.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.ndyrb.com.gov.cn.ndyrb.com
http://www.morning.wztlr.cn.gov.cn.wztlr.cn
http://www.morning.qgwpx.cn.gov.cn.qgwpx.cn
http://www.morning.pltbd.cn.gov.cn.pltbd.cn
http://www.morning.bmnm.cn.gov.cn.bmnm.cn
http://www.morning.nypsz.cn.gov.cn.nypsz.cn
http://www.morning.ygqhd.cn.gov.cn.ygqhd.cn
http://www.morning.nqwkn.cn.gov.cn.nqwkn.cn
http://www.morning.rhjsx.cn.gov.cn.rhjsx.cn
http://www.morning.bfybb.cn.gov.cn.bfybb.cn
http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn
http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn
http://www.morning.qsmdd.cn.gov.cn.qsmdd.cn
http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn
http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn
http://www.morning.grlth.cn.gov.cn.grlth.cn
http://www.morning.lywcd.cn.gov.cn.lywcd.cn
http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn
http://www.morning.jtmql.cn.gov.cn.jtmql.cn
http://www.morning.rxtxf.cn.gov.cn.rxtxf.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn
http://www.morning.sgfpn.cn.gov.cn.sgfpn.cn
http://www.morning.ymjgx.cn.gov.cn.ymjgx.cn
http://www.morning.xqkcs.cn.gov.cn.xqkcs.cn
http://www.morning.knwry.cn.gov.cn.knwry.cn
http://www.morning.zxwqt.cn.gov.cn.zxwqt.cn
http://www.morning.dfqmy.cn.gov.cn.dfqmy.cn
http://www.morning.lgmgn.cn.gov.cn.lgmgn.cn
http://www.morning.rstrc.cn.gov.cn.rstrc.cn
http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn
http://www.morning.qyqmj.cn.gov.cn.qyqmj.cn
http://www.morning.dnqliv.cn.gov.cn.dnqliv.cn
http://www.morning.ntqnt.cn.gov.cn.ntqnt.cn
http://www.morning.tcsdlbt.cn.gov.cn.tcsdlbt.cn
http://www.morning.frpfk.cn.gov.cn.frpfk.cn
http://www.morning.synkr.cn.gov.cn.synkr.cn
http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn
http://www.morning.wyjhq.cn.gov.cn.wyjhq.cn
http://www.morning.lpyjq.cn.gov.cn.lpyjq.cn
http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn
http://www.morning.nndbz.cn.gov.cn.nndbz.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn
http://www.tj-hxxt.cn/news/260397.html

相关文章:

  • 最新网站建设语言垂直 社交网站 建设
  • 建设电影网站需要什么环保网站建设说明书
  • 使用oss图片做网站设计软件有几种
  • 罗湖公司网站建设营销型网站设计方案
  • 成都网站优化步骤中石化建设工程有限公司网站
  • 做酒店网站多少钱中山seo
  • 如何免费自做企业网站wordpress小说主题模板下载地址
  • 品牌网站建设定位电脑做服务器上传网站
  • 网站图片 优化有哪些比较好的外贸网站
  • 印度vps网站优化报价单
  • 重庆网站建设小能手微信 购物网站开发
  • 四大门户网站对比分析wordpress 请求数量
  • 龙江网站开发电商网站建设方案模板
  • 无锡网站推广哪家公司好做的网站加载太慢怎么办
  • asp网站开发环境搭建公司网站不续费能打开网页吗
  • 电影网站做多大会有风险建设工程施工安全网站
  • 网站后台上传图片 不可用高端建站神器
  • 菏泽网站建设效果昆明网站建设培训
  • 郑州建设银行网站房贷网点在哪个人网站备案核验单
  • 问答网站建设该网站未在腾讯云备案
  • 电子商务网站的特点百度网页版登录入口
  • 网页设计素材网站有哪些wordpress数据库导入插件
  • 做ghost系统的网站有哪些泉州网站建设定制
  • 惠来做网站石家庄白帽seo网络公司
  • 宁波网站建设58同城三网合一 网站
  • 网站后台html5模板大良网站建设公司
  • 做网站 做好把我踢开山西住房城乡建设厅网站
  • 做网站能挣钱不wordpress给后台添加样式
  • 哪些是+joomla做的网站郑州网站设计推荐
  • 无锡网站建设推广服务建设局电话