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

四川关于工程建设网站分工做网站如何

四川关于工程建设网站,分工做网站如何,外贸英文网站建设价格,wordpress被黑以对象管理资源 有这样一段代码: class A { public:A* create(){...}}; class B :public A { public:A* ptr create();...delete ptr; }; 我们定义了ptr去接收create()函数的返回值,并且在最后进行了回收资源。看似是没问题的。但是实际上有很多隐患&am…

以对象管理资源

有这样一段代码:

class A
{
public:A* create(){...}};
class B :public A
{
public:A* ptr = create();...delete ptr;
};

我们定义了ptr去接收create()函数的返回值,并且在最后进行了回收资源。看似是没问题的。但是实际上有很多隐患:

1.delete前的...或许有一个过早的return语句

2.delete语句位于某个循环内,也许会进行过早的goto或者break

3.delete前的...或许有一个异常抛出

所以这样写并不是最佳的。

那如何写呢? 

引入C++11的智能指针

class B :public A
{
public:auto_ptr<A> ptr(create());...};

不论控制流如何离开区块,一旦对象被销毁其析构函数自然会被自动调用,于是资源被释放

但是auto_ptr 的劣势也很明显:如果它被拷贝了并且同时指向一块内存,当其中一个指针释放这块资源时,另一个指针就会变成野指针。 

怎么办?

利用其他的智能指针

shared_ptr :

利用计数的思想,当多个指针同时管理一块资源时,每释放一个指针,计数减一,直到0便释放资源。避免了野指针的问题。

unique_ptr:

不允许拷贝,更杜绝了以上问题。

weak_ptr:

针对unique_ptr的缺陷(循环引用)进行填补.

所以:

1.为了防止资源泄漏,请使用RAII对象

2.尽量少使用auto_ptr 

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

相关文章:

  • 用织梦做的网站下载地址做网站制作大概多少钱
  • 网页制作网站首页装潢公司网站模块
  • 绍兴网站制作计划西安软件培训
  • 看手机的网站泉州专业网站制作定制
  • 网站模板漏洞抖音小程序怎么入驻
  • 网站在什么地方设关键词一个主机建多少个网站
  • 专业做网站公司 前景docker wordpress fpm
  • 网站免费空间哪里申请镇江网站外包
  • php 网站安装原理双桥集团网站建设
  • 网站成功上线报道c2c网站的盈利模式有哪些
  • 电信备案新增网站苏州企业网站建设服务中心
  • 南阳网站建设口碑课件ppt模板免费下载网站
  • jeecms 怎么建设网站中山微网站建设报价
  • 如何不花钱开发网站关键词优化一年多少钱
  • 四川网站建设 旋风网站主页不收录
  • 网站搬家后出错wordpress固定网址打不开
  • 做特卖的网站爱库存网站建设项目可行性报告
  • 贵州省城乡与建设厅网站自动发货网站建设
  • 门户网站开发需要多少钱天猫店的网站怎么做的
  • 网站建设这一行业怎样重庆的主要的网站
  • 手机网站添加微信方式文山网站建设求职简历
  • 腾讯云10g数字盘做网站够么安徽网站建设详细教程
  • 怎么做网站教程html文本文档双语 网站 数据怎么做
  • 网站建设图片如何循环转广东南电建设集团网站
  • asp.net网站维护怎么免费注册企业邮箱
  • 代码网站怎么制作信息网站开发
  • 网站建设是指临沂网站建设对实体企业
  • wordpress __file__长沙官网seo收费标准
  • 哈尔滨正规制作网站公司网站seo优化加推广
  • wordpress站内跳转WordPress禁止英文评论插件