c++ - 何时使用指针,何时不使用它们

标签 c++ pointers

我目前正在用 C++ 做我的第一个真正的项目,所以对指针来说还很陌生。我知道它们是什么并且已经阅读了一些基本的使用规则。可能还不够,因为我仍然不太了解何时使用它们,何时不使用它们。

问题是大多数地方只是提到大多数人要么过度使用它们,要么使用不足。我的问题是,何时使用它们,何时不使用它们?

目前,在很多情况下我在问自己,我应该在这里使用指针还是只将变量本身传递给函数。

例如,我知道您可以发送一个指向函数的指针,这样函数实际上可以更改变量本身而不是变量的拷贝。但是,当您只需要一次获取对象的一些信息时(例如,该方法需要一个 getValue() 之类的东西),在这种情况下指针有用吗?

我很想看到任何一种 react ,但也希望看到可能有用的链接。因为这是我第一次使用 C++,所以我还没有一本好的 C++ 书籍(如果我继续使用 C++,我正在考虑买一本,我可能会买)。

最佳答案

对于 C++ 的注意事项:

Effective C++ and More Effective C++ by Scott Meyers。

对于指针(和引用):

  • 如果类型适合 4 个字节并且不想在调用返回后更改它,则使用按值传递。
  • 如果类型较大并且您不想在调用返回后更改它,请使用对 const 的引用传递。
  • 如果参数不能为 NULL,则使用引用传递
  • 否则使用指针。

如果不需要,请不要使用原始指针。大多数时候,智能指针(参见 Boost)是更好的选择。

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

相关文章:

c++ - 如何在usr/include/linux中搜索头文件

c++ - 通过唯一 ID 连接到主机,而不是 IP?

c++ - 静态断言和 SFINAE

c++ - 删除间接指针是否正确

c - 使用 printf 和不使用 printf 实现 itoa 函数时出现的问题

c++ - 如何检查容器是否支持多连接?

c++ - BlackBerry 10 中的反向地理编码

ios - Swift 中 SQLite 项目中的 UnsafePointer<Uint8> 问题

c++ - 无法在我的链接列表中插入项目,头部始终为 NULL

C++:如何获取指向二维动态数组的指针?