【发布时间】: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 的原始实例相同...我不明白.. 使用它有什么好处?如果可以的话,给我一个场景!感谢您的帮助!
【问题讨论】:
-
您在示例代码中的使用确实没有任何好处。但是看看菲尔所链接的问题的公认答案。答案列出了实际必须使用指针(或引用)的场景。