【问题标题】:Simple Guide to using pointers [duplicate]使用指针的简单指南[重复]
【发布时间】:2011-12-29 12:28:20
【问题描述】:

可能重复:
What are the barriers to understanding pointers and what can be done to overcome them?
What is a smart pointer and when should I use one?

我正在学习 C++,但我在学习指针时遇到了很多困难,所以我到处使用它们来进行一些实验并了解如何使用它们。不,我确实了解如何使用它们的概念,但我不知道何时何地不使用它们 - 我很惊讶许多在线网站和书籍未能涵盖如此重要的内容。

谁能像外行一样给我一个关于何时以及为什么使用指针的想法。 2. 智能指针何时优于普通指针。

注意:不过,我确实知道并理解堆栈和堆分配的事情。

感谢您的帮助。

【问题讨论】:

  • 指针是出了名的难以学习和理解 - 尽管链接的问题可能无法回答您对指针特别是智能指针的所有问题,但是您的问题也非常广泛并且很可能是反正关门了。我建议您先阅读该问题,然后再回来询问您仍有关于指针的任何具体问题。
  • 如果您是 C++ 新手,则根本不应该使用任何原始指针。我敢肯定,您可能尝试的任何初学者项目都可以以更好、更简洁的方式编写,无需指针或new
  • 可能重复的第一个链接没有回答我的问题。我想要的有点像一个使用指针的情况列表,在哪些情况下使用指针是一个好主意,而在哪些情况下它毫无意义——所说的答案只解释了它们是如何工作的(尽管我必须说这是一个很好的解释)。跨度>

标签: c++ pointers smart-pointers


【解决方案1】:

应该尽可能使用智能指针,因为它们可以提供更好的内存管理,并且现在已成为一种广泛使用的模式,任何体面的 c++ 程序员都可以识别。如果您不执行以下任何操作,您可能应该使用智能指针。

原始指针可用于某些无法使用智能指针的事情(按原样,它们可以被修改)。您可以使用指针指向数组(尽管在 c++ 中最好使用std::vector),您可以使用指向未定义类的指针作为类成员(使用前向声明),您可以进行指针运算等。

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2012-06-08
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多