什么时候使用指针,什么时候不使用指针?

什么时候使用指针,什么时候不使用指针?,第1张

什么时候使用指针,什么时候不使用指针?

首先避免指针。

在以下情况下使用它们:

  • 您想使用Pimpl习惯用法或抽象工厂。
  • Bar
    实例实际上是由程序的其他部分管理的,而
    Foo
    该类仅需要能够访问它。
  • 您想推迟
    Bar
    对象的构建(即,您想 构建 之后 创建它
    Foo
    )。
  • 在您的业务逻辑中,
    Bar
    对象可能根本不存在。您也
    null
    可以在Java中使用。但是,也请检查boost :: optional。
  • Bar
    实际上是基类,您需要实例是多态的。
  • 您碰巧正在使用一个倾向于将GUI小部件显示为指针的工具箱。示例可以包括(但肯定不限于)wxWidgets和GLUI。

在任何这些情况下(*),请使用智能指针开始,例如boost ::
shared_ptr
。否则,您可能迟早会忘记分配内存。知道自己在做什么之后,请逐案考虑哪种指针类型最好。

(*)任何情况–可能除外,有关GUI小部件的项目符号;在这种情况下,您的工具包很可能也会为您管理资源



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5560614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存