Chinaunix首页 | 论坛 | 博客
  • 博客访问: 496849
  • 博文数量: 111
  • 博客积分: 3160
  • 博客等级: 中校
  • 技术积分: 1982
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-24 11:49
个人简介

低调、勤奋。

文章分类

全部博文(111)

文章存档

2014年(2)

2013年(26)

2012年(38)

2011年(18)

2010年(27)

分类: C/C++

2013-02-14 22:35:19

                                            C++ auto_ptr智能指针的用法

C++中指针申请和释放内存通常采用的方式是newdelete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法。

具体内容见:http://blog.csdn.net/monkey_d_meng/article/details/5901392

上文已经描述了使用auto_ptr的一个缺陷是所有权能够转移,采用boost的scoped_ptr能很好解决该问题,。

scoped_ptr用法基本上和auto_ptr一样,大多数情况下可以相互替换,也可从auto_ptr中获得指针的管理。

两者都不可作为容器的元素,但原因不同:后者因为它的转移语义,后者不支持拷贝和赋值。

两者的根本区别在于指针的所有权。auto_ptr特意被设计为指针的所有权是可转移的,可以再函数之间传递,同一时刻只能有一个auto_ptr指针。而scoped_ptr将拷贝构造函数和赋值函数都声明了私有,拒绝了指针所有权的转让从而保证了指针的绝对安全


阅读(5706) | 评论(0) | 转发(0) |
0

上一篇:VS2010 调用libcurl

下一篇:VS2010下安装boost库

给主人留下些什么吧!~~