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

app开发网站建设公司哪家好网站实名制认证备案

app开发网站建设公司哪家好,网站实名制认证备案,设计制作小车二教学视频,幕墙设计师培训以对象管理资源 有这样一段代码: 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/438322/

相关文章:

  • 代理网站是什么上传视频网站源码
  • WordPress怎么更改主题名称seo交流博客
  • 淘客手机网站建设不用代码做网站
  • 1个ip可以做几个网站吗开县做网站
  • 做网站编辑应该注意什么微博问答网站开发
  • 汕头建设网站网络公司的经营范围有哪些
  • 欧美做瞹瞹嗳免费视频网站网站建设公司公司我我提供一个平台
  • 青岛学校论坛网站建设wordpress与微信连接
  • 中国网库做网站游戏开发和网站开发哪个好玩
  • 网络司网站猪八戒网网站开发需求
  • 全球建筑设计网站用dw制作视频网站
  • 怎么做网站后台界面聚美优品网站建设目的
  • 在车子男女做的视频网站微信公众平台推广
  • 东丽区装饰网站建设电子商务网页设计与网站建设论文
  • 昆明网站建设精英电商怎么做
  • 网站建设域名空间网站制作软件dw
  • 同ip网站有什么影响西安黄页网
  • 网站怎么建设商城微信小程序网站建设方案
  • 网页设计公司哪家效果好无锡网站建设seo
  • 百度网站的总结找it工作有什么好的招聘网站
  • 网站建设的通知唯美古风ppt模板
  • 网站设计流程电话网站设计要素 优帮云
  • 学校信息门户网站建设毕设做网站什么主题比较好
  • 龙南建设局网站深圳十大工业设计公司
  • vue 做自适应网站建设企业网站的人员组成
  • 湖北网站建设服务郑州做网站的公司哪家好
  • 手机wap网站开发idc销售网站模板
  • 网站推广都有哪些市场营销策略国内外研究现状
  • 移动端网站开发语言wordpress自己安装了插件吗
  • 网站建设包括哪方面app注册推广团队