内容简介:越来越多的我听说,我应该使用智能指针而不是裸指针,尽管我有有效的内存泄漏系统实现.请问使用智能指针的正确编程方法是什么?是否应该使用它,即使我检查分配的内存块上的内存泄漏?还是由我决定的如果我不使用它们,这可以被认为是编程弱点吗?如果强烈推荐使用智能指针(例如: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++ 智能指针作为编程标准的使用?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 将数组和矩阵传递给函数,作为C中指针的指针和指针
- NULL 指针、零指针、野指针
- C语言指针数组和数组指针
- python(函数指针和类函数指针)
- C++ 基类指针和派生类指针之间的转换
- golang的值类型,指针类型和引用类型&值传递&指针传递
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
恰如其分的软件架构
George Fairbanks / 张逸、倪健、高翌翔 / 华中科技大学出版社 / 2013-9-1 / 88.00
本书描述了一种恰如其分的软件架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与 敏捷开发方法有机地结合在一起,适合普通程序员阅读。 . 这是一本超值的书,案例丰富有趣,言简意赅,阅读轻松。当年......一起来看看 《恰如其分的软件架构》 这本书的介绍吧!