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

论坛网站怎么做网页图片转换成pdf文件

论坛网站怎么做,网页图片转换成pdf文件,互联网域名是什么意思,提升网页优化排名上一篇博文中,我们使用单独的火箭发射函数,结果什么结果也没有得到,原因是launch_rocket()函数结束时,其内的局部对象counter生命周期也结束了 那么可以将counter改为指针吗?在堆中分配,这样当函数退出时&…

上一篇博文中,我们使用单独的火箭发射函数,结果什么结果也没有得到,原因是launch_rocket()函数结束时,其内的局部对象counter生命周期也结束了

那么可以将counter改为指针吗?在堆中分配,这样当函数退出时,它不会被释放。这样肯定是不行的,这样不会得到结果,还会造成内存泄露。

那么我们可以使用智能指针,如下图

代码:

这样还是没用,当函数一结束,智能指针对象counter还是立即释放。

运行结果:

原因分析:

当前的代码中,智能指针counter从来没有被复制,所以它的引用计数就只是1,当所处的函数结束,减至0,于是释放。这效果和当初的栈对象版本有何区别?

思路:

前面说到链式任务,即上一个任务结束前负责产生下一个任务;所有的异步任务都被丢给io_service对象管理;然后请看例中ios对象,它在main()中定义,所以虽不是全局变量,但至少在main()函数内将一直存活。

如果我们在每次产生新任务丢给io_service对象时,

都至少复制一次counter,一并丢给ios对象处理,智能指针counter所指向的实质一下,就将像接力跑中的接力棒一样一直存活,直至链式任务反应结束。

既然要走链式传递智能指针的路,也就同样面临两个关键环节。第一个环节是什么时候创建出智能指针。这一步已经完成,就在“launch_rocket()”函数中:

第二个环节是产生新任务的环节如何复制该智能指针,先看现有的代码:终点是划线的那行

有一个好消息:async_wait()函数的入参用到this,意味着正好把当前对象(*this)又传递下去了。当前对象(*this)是传给“_timer”对象,然后再由“_timer”对象作为事件回调所需的一个入参,传递给io_service对象。

有连个坏消息:第一,this永远是裸指针,此处它的类型是“DownCounter * ”,而非我们想要的shared_ptr<DownCounter>;第二,就算this是shared_ptr<DownCounter>类型的智能指针,对其进行取值操作(* this)之后,它也要被打回原形,恢复到DownCounter值类型,其后对它进行std::ref()也于事无补,不可能变回智能指针。

http://www.yayakq.cn/news/609103/

相关文章:

  • 建设工程资讯哪个网站好个人简历样本范文
  • 怎么做公司内部网站炫酷的动画网站
  • 信誉好的武进网站建设互动网络平台
  • 微信营销软件网站建设广告公司账务处理
  • 建立个人免费网站原画培训机构哪里好
  • 长沙建设工程官方网站工商局网上注册
  • 网站图标用代码代替网络工程师需要考什么证书
  • 做网络主播网站违法吗网站备案 几年
  • 怎么给网站做备份呢wordpress自带搜索吗
  • 公司是做网站建设的怎么开票做网站的版权问题
  • 专用车网站建设多少钱深圳市住建局网站
  • dedecms 食品网站深圳网络推广的公司
  • 嘉兴地区有人做网站吗公司网站服务器维护
  • 网站聚合搜索怎么做百度号码认证平台官网首页
  • 域名申请网页制作网站建设黄骅港出海捕鱼
  • 菏泽企业做网站wordpress 关注
  • 如何做DJ网站免费网站建设排名
  • 如何用华为云服务器做网站asp做的手机网站
  • 网站公司动态做不了怎么办台州商品关键词优化
  • 网站建设类的计入什么科目开发公司与物业公司交接清单
  • 优化网站软文福州网站建设优化
  • 上门做网站兰州企业网站
  • 佛山市建设局网站wordpress媒体库+下载
  • 建站之星好吗wordpress主题开发教程
  • 昆明快速建站模板湖南互联网公司
  • 免费网站开发模板重庆网站推广运营
  • 深圳做营销网站公司简介娄底营销型网站建设
  • 四川成都网站制作公司市场调研报告范文3000字
  • 百度没有收录我的网站吗公司主页怎么填写
  • 百度网站推广怎么样惠州seo计费管理