内容简介:越来越多的我听说,我应该使用智能指针而不是裸指针,尽管我有有效的内存泄漏系统实现.请问使用智能指针的正确编程方法是什么?是否应该使用它,即使我检查分配的内存块上的内存泄漏?还是由我决定的如果我不使用它们,这可以被认为是编程弱点吗?如果强烈推荐使用智能指针(例如: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++ 智能指针作为编程标准的使用?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
互联网运营实战手册
李春雷 / 人民邮电出版社 / 2017-4 / 49.80元
为什么网络推广做不起来?微信文章也是套路?标题党的背后是什么?把服务器搞瘫痪的活动是怎么玩出来的?社群究竟要如何运营?数据又该如何运营?你会任务分解吗? 《互联网运营实战手册》详细剖析了网站(产品)的运营技巧与实战,涵盖实用的互联网运营方法,是作者从多年的实战中提炼出的运营心得和精华,涉及运营技巧、运营工具和运营思维方法。详细讲解了用户运营、内容运营、新媒体运营、社群运营、活动运营和数据运营......一起来看看 《互联网运营实战手册》 这本书的介绍吧!