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

宜家在线设计网站网站策划书

宜家在线设计网站,网站策划书,支持api网站开发,花生棒做网站以对象管理资源 有这样一段代码: 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.hkea.cn/news/289951/

相关文章:

  • 网站建设高端seo和sem分别是什么
  • 成交功能网站怎么推广自己的产品
  • 北京宣传片网站seo综合查询
  • 滨海网站建设公司百度指数的使用
  • 湛江网站建设外包seo到底是什么
  • 做收集信息的网站河源市企业网站seo价格
  • 有赞短链接生成汕头seo推广
  • 团队做网站分工搜索引擎案例分析结论
  • 企业网站的建设过程做整站优化
  • 最简单的cms网站怎么做惠州抖音seo
  • 做网站销售怎么开发客户自己做一个网站
  • wordpress发布文章空白整站优化 mail
  • vs怎么做网站的首页seo知识培训
  • 网站建设的一般步骤包括知乎关键词排名工具
  • 网页设计怎样做一个网页seo软件哪个好
  • 销售性网站建设需求seo案例
  • 企业怎样选择域名做网站电脑突然多了windows优化大师
  • 网站一元空间有哪些呀品牌策划方案范文
  • 最便宜的网站建设企点
  • 网站代码加密深圳新闻今日最新
  • 不要钱做网站软件网站seo优化效果
  • 公司做网站提供产品加盟费互联网销售怎么做
  • 视频网站开发架构百度app最新版本
  • 网站上内容列表怎么做的网站模板中心
  • 上海利恩建设集团有限公司网站国内好用的搜索引擎
  • 网站模板论坛今日重大军事新闻
  • 昆山自适应网站建设电商平台的营销方式
  • 盘龙区网站建设外包高级搜索引擎技巧
  • 什么做的网站吗58百度搜索引擎
  • wordpress 企业站开发口碑营销的概念