您的位置:首页 > 编程语言 > C语言/C++

读书笔记《Effective c++》 条款13 以对象管理资源

2018-01-09 16:39 405 查看
所谓资源就是,一旦用了它,将来必须还给系统。

本书出版较早,所以书中介绍的是auto_ptr和tr1::shared_ptr,而在现在c++11中完善了原来的auto_ptr,增加了几种智能指针,这方面资料很多,这里只引用别人的一篇文章:

http://blog.csdn.net/zy19940906/article/details/50470087

智能指针就是所谓的RAII“资源获得及初始化”,也就是每笔资源在获得的同事立刻被放进管理对象中,这样的好处是当离开资源的作用域后,智能指针会自动释放资源,而不需要管在函数是否提前return之类的事情。

补充:

  关于new,delete,new[],delete[],关键是要配对使用,new[]然后用delete释放在有些情况下不会有问题(这里不介绍了),但是,还是不要这么做,找了篇文章讲的比较详细了:

http://blog.csdn.net/hazir/article/details/21413833

所以如果是指向数组的shared_ptr,一定要提供delete函数,否则就和用new[]然后用delete释放一个效果了。

unique_ptr不一样,它直接就支持数组类型,可以直接写成unique_prt<Test[]>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息