何时引用和取消引用具有成员函数的指针

时间:2013-06-23 06:36:31

标签: c++ visual-studio visual-c++ pointers reference

在书中,我正在学习C ++,我开始学习指针。在它给出的示例中,它并没有真正指定何时使用成员函数取消引用指针。

cout << "Assigning &str to pStr\n";
string str = "score";
string* pStr = &str; //pointer to string object
cout << "str is: " << str << "\n";
cout << "pStr is: " << *pStr << "\n";
cout << "(*pStr).size() is: " << (*pStr).size() << endl;
cout << "pStr->size() is: " << pStr->size() << "\n";

为什么在倒数第二行pStr

(*pStr).size()
在最后一行

时需要取消引用

 pStr->size()

pStr没有

1 个答案:

答案 0 :(得分:3)

事实上,有两个陈述:

(*pStr).size();
pStr->size();

正在做同样的事情。在两种情况下都取消引用指针。区别仅在于语法。这是语言的定义方式。可以从语言中删除->运算符,而不会丢失任何功能。这有点语法上的便利。