gpt4 book ai didi

java - 何时使用指针,何时不使用?

转载 作者:IT老高 更新时间:2023-10-28 12:49:56 25 4
gpt4 key购买 nike

我习惯于进行 Java 编程,在这种情况下,您在编程时不必真正考虑指针。但是,目前我正在用 C++ 编写程序。在创建具有其他类成员的类时,什么时候应该使用指针,什么时候不应该使用?例如,我什么时候想这样做:

class Foo {
Bar b;
}

与此相反:

class Foo {
Bar* b;
}

最佳答案

从避免指针开始。

在以下情况下使用它们:

  • 您想使用 Pimpl idiom , 或 abstract factory .
  • Bar 实例实际上由程序的其他部分管理,而 Foo 类只需要能够访问它。
  • 您想推迟 Bar 对象的构建(即,您希望在 构建 Foo 之后创建它)。
  • 在你的业务逻辑中,Bar 对象可能根本不存在;您也可以在 Java 中使用 null。但是,请查看 boost::optional也一样。
  • Bar其实是一个基类,需要实例是多态的。
  • 您碰巧使用的工具包更喜欢将 GUI 小部件呈现为指针。示例可能包括(但当然不限于)wxWidgetsGLUI .

在任何这些情况下 (*),请从使用智能指针开始,例如 boost::shared_ptr .否则,您迟早可能会忘记释放内存。一旦你知道自己在做什么,请根据具体情况考虑哪种指针类型最好。

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

关于java - 何时使用指针,何时不使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/397263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com