我只是对在C ++上使用指针感到困惑..你可能会说,"指针显然是另一个变量的记忆地址,并且在你的程序中你肯定需要它们的条件#34 ;.但我不是指一般的指针,我的意思是你用来喜欢的指针"模拟"一堂课...我认为代码会解释得更多:
#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 book book1的原始实例相同......我不明白..使用它的优点是什么?如果可以,请给我一个场景!谢谢你的帮助!!
答案 0 :(得分:1)
根本没有“模拟”发生。 book1
也有一个地址,this
指针在book1
时设置为book1.setBooksId(123);
的地址。没有区别。