为什么围绕此代码段中指针的括号是必要的?
cout << (*pStr).size() << endl;
回顾我的书后,我终于在一个我看过的脚注中找到了一点提及。
它说,&#34; - 这确保点运算符将应用于指针所指向的对象。&#34;
为什么这不起作用?
cout << *pName.size() << endl;
我只是问,因为我的书并没有给出很好的解释,因为我浪费了很多时间试图弄清楚为什么这行代码给我一个错误。 (当然我忘记了括号)
答案 0 :(得分:4)
.
的优先级高于*
。因此*foo.bar
表示*(foo.bar)
。
因此,此代码无效,因为.
运算符无法应用于指针
(我使用了没有函数调用操作符()
的示例,因为它的优先级也高于*
所以它变得复杂了。
请记住,您可以而且应该写pName->size()
。可能会创建->
以避免所有这些括号。