c++ 智能指针作为编程标准的使用?

栏目: C++ · 发布时间: 7年前

内容简介:越来越多的我听说,我应该使用智能指针而不是裸指针,尽管我有有效的内存泄漏系统实现.请问使用智能指针的正确编程方法是什么?是否应该使用它,即使我检查分配的内存块上的内存泄漏?还是由我决定的如果我不使用它们,这可以被认为是编程弱点吗?如果强烈推荐使用智能指针(例如:std :: auto_ptr),我应该使用它们而不是每个裸指针吗?

越来越多的我听说,我应该使用智能指针而不是裸指针,尽管我有有效的内存泄漏系统实现.

请问使用智能指针的正确编程方法是什么?是否应该使用它,即使我检查分配的内存块上的内存泄漏?还是由我决定的如果我不使用它们,这可以被认为是编程弱点吗?

如果强烈推荐使用智能指针(例如:std :: auto_ptr),我应该使用它们而不是每个裸指针吗?

您应该使用RAII处理所有资源分配.

智能指针只是该规则的一个常见特殊情况.

而智能指针不仅仅是shared_ptr.有不同的所有权语义的不同智能指针.使用适合您需要的产品. (主要的是scoped_ptr,shared_ptr,weak_ptr和auto_ptr / unique_ptr(更喜欢后者,如果可用)根据您的编译器,它们可能在标准库中可用,作为TR1的一部分,或者根本不在这种情况下可以通过Boost库获得它们.

是的,你应该绝对使用这些.它花费你什么(如果正确地,你失去了零性能),并且它获得了很多(内存和其他资源被自动释放,你不必记得手动处理,你的代码使用资源获取更短更简洁)

请注意,并不是每个指针使用都代表某种资源所有权,因此并不是所有的原始指针使用都是错误的.如果你只需要指向别人所拥有的对象,那么一个原始的指针是完全合适的.但是,如果您拥有对象,那么您应该对其进行适当的所有权,无论是通过将类本身RAII语义,还是将其包装在智能指针中.

http://stackoverflow.com/questions/6142142/usage-of-smart-pointers-as-a-programming-standard


以上所述就是小编给大家介绍的《c++ 智能指针作为编程标准的使用?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网爆破术:快速掌握互联网运营全链条实战技巧

互联网爆破术:快速掌握互联网运营全链条实战技巧

茶文 / 电子工业出版社 / 2018-7 / 49.00元

《互联网爆破术:快速掌握互联网运营全链条实战技巧》是一本实用的互联网运营书籍,可以让读者快速掌握运营全链条的干货技巧和相关模型,涵盖如何有效寻找市场的需求爆破点,通过测试一步步放大并引爆,直至赢利。《互联网爆破术:快速掌握互联网运营全链条实战技巧》非常适合互联网运营人员及互联网创业者阅读,它可以帮读者快速了解互联网运营的核心技巧,并用最低的成本取得成功。本书5大特色:快速入门、实战干货、低成本、系......一起来看看 《互联网爆破术:快速掌握互联网运营全链条实战技巧》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器