我在大学里学到,你总是要释放你未使用过的物品,而不是你实际上是如何做到的.例如,正确构建代码等等.关于如何在C++中处理指针有什么一般规则吗?
我目前不允许使用提升.我必须坚持使用纯c ++,因为我使用的框架禁止使用泛型.
我使用嵌入式Symbian操作系统,它有一个完美的系统,完全基于开发人员惯例.
只有一个对象拥有指针.默认情况下,这是创建者.
所有权可以传递.为了表明所有权的传递,该对象作为方法签名中的指针传递(例如void Foo(Bar*zonk);).
所有者将决定何时删除该对象.
要将对象传递给仅供使用的方法,该对象将作为方法签名中的引用传递(例如void Foo(Bat&zonk);).
非所有者类可以存储对它们所给对象的引用(从不指针),只有当它们可以确定所有者在使用期间不会销毁它时.
基本上,如果一个类只使用某个东西,它会使用一个引用.如果一个类拥有某个东西,它会使用一个指针.
这很好用,很愉快.记忆问题非常罕见.
规则:
尽可能使用 智能指针.Boost有一些 好的.
如果您不能使用智能指针,请在删除指针后将其清空.
永远不要在任何不允许您使用规则1的地方工作.
如果有人不允许遵守规则1,请记住,如果您抓住其他人的代码,更改变量名称并删除版权声明,任何人都不会注意到.除非是学校项目,否则他们会用相当复杂的工具检查那种恶作剧.另见这个问题.