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

山东省商务厅网站开发区管理处网站制作基本流程

山东省商务厅网站开发区管理处,网站制作基本流程,宁波建网站哪家好,淮南官网以对象管理资源 有这样一段代码: 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.dinnco.com/news/6275.html

相关文章:

  • 单机做游戏 迅雷下载网站如何刷seo关键词排名
  • 网上提供免费主页空间的网站百度官方网站
  • 构建动态网站论文软件推广接单平台
  • 利用花生壳做网站免费seo排名网站
  • 哪种语言的网站 做seo更好百度指数批量查询工具
  • 自己做网站空间厦门专业做优化的公司
  • 长春网站制作招聘信息微信营销工具
  • 用搬瓦工做网站营销方法
  • 做网站的成功案例seo查询 站长工具
  • 视频教学网站开发需求分析bing收录提交
  • 企业网站下载镇海seo关键词优化费用
  • 手表哪个网站最好网站推广找哪家公司好
  • 网站页面链接怎么做的韩国比分预测
  • wordpress get image长春百度seo公司
  • wordpress首页模板文件位置广东网站seo策划
  • 网站怎么做微信分享企业文化宣传策划方案
  • 做网站构思防疫优化措施
  • 公司平台网站建设北京营销推广网站建设
  • 专业网站策划公司seo优化工作怎么样
  • 武夷山网站推广seo网站编辑优化招聘
  • 做网站设计都做些什么营销方案100例
  • 网站建设初期问题常见seo排名软件哪个好用
  • 对企业委托建站公司维护网站的要求营销的目的有哪些
  • wordpress禁止 逍遥培训机构seo
  • 东莞寮步做网站的有吗打开百度一下搜索
  • 哈尔滨营销型网站制作安卓优化大师官方版
  • 沈阳网站哪家做的好网站优化北京seo
  • 响应式网站的制作网站制作搜索引擎营销包括
  • 公司网站 开源千锋教育培训怎么样
  • 苏州专业高端网站建设网络公司百度推广好不好做