【问题标题】:What is the benefit of using a pointer C++ [duplicate]使用指针 C++ 有什么好处 [重复]
【发布时间】:2016-08-15 04:35:37
【问题描述】:

我只是对在 C++ 上使用指针感到困惑。你可能会说,“指针显然是另一个变量的内存地址,并且在你的程序中肯定存在需要它们的条件”。但我不是指一般的指针,我指的是你用来喜欢“模拟”一个类的指针......我认为代码会更多地解释它:

#include <iostream>
#include <string>
#include "Book.h"


int main() {
    Book book1;
    Book *bookPointer = &book1;


    book1.setBooksId(123);
    std::cout << "BOOK ID: " << book1.getBookId() << std::endl;

    (*bookPointer).setBooksId(300);
    std::cout << (*bookPointer).getBookId() << std::endl;

    /*When usage of arrow member selection member, left is always a pointer. 
      Same thing as above, but better practice!
      */

    bookPointer->setBooksId(100);
    std::cout << "POINTER ARROW  : " << bookPointer->getBookId() << std::endl;
    return 0;
}

在这里,您看到我有另一个称为 bookPointer 的指针,它所做的一切与 book 类 book1 的原始实例相同...我不明白.. 使用它有什么好处?如果可以的话,给我一个场景!感谢您的帮助!

【问题讨论】:

  • 您在示例代码中的使用确实没有任何好处。但是看看菲尔所链接的问题的公认答案。答案列出了实际必须使用指针(或引用)的场景。

标签: c++ pointers


【解决方案1】:

根本没有“模拟”发生。 book1 也有一个地址,当你做book1.setBooksId(123); 时,this 指针被设置为book1 的地址。没有区别。

【讨论】:

  • @AmanuelBogale 是吗?在哪里?
  • 我认为的 Anwsers.. 第一个 Anwser?我看不到他在这个话题上的立场
  • @AmanuelBogale this 指针只是方法调用中的隐藏参数。无论是从指针变量 (foo-&gt;bar()) 中读取指针,还是通过获取变量的地址 (foo.bar()) 来推断,在一天结束时,它都会将指针传递给方法。
  • @AmanuelBogale 如果你这么含糊,为什么不说是在互联网上呢?
猜你喜欢
  • 2017-08-26
  • 2012-05-22
  • 2012-05-08
  • 1970-01-01
  • 2021-12-23
  • 2013-04-16
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多