首先避免指针。
在以下情况下使用它们:
- 您想使用Pimpl习惯用法或抽象工厂。
- 该
Bar
实例实际上是由程序的其他部分管理的,而Foo
该类仅需要能够访问它。 - 您想推迟
Bar
对象的构建(即,您想 在 构建 之后 创建它Foo
)。 - 在您的业务逻辑中,
Bar
对象可能根本不存在。您也null
可以在Java中使用。但是,也请检查boost :: optional。 Bar
实际上是基类,您需要实例是多态的。- 您碰巧正在使用一个倾向于将GUI小部件显示为指针的工具箱。示例可以包括(但肯定不限于)wxWidgets和GLUI。
在任何这些情况下(*),请使用智能指针开始,例如boost ::
shared_ptr。否则,您可能迟早会忘记分配内存。知道自己在做什么之后,请逐案考虑哪种指针类型最好。
(*)任何情况–可能除外,有关GUI小部件的项目符号;在这种情况下,您的工具包很可能也会为您管理资源
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)