gpt4 book ai didi

c++ - 为什么在取消引用的指针上调用成员函数需要括号?

转载 作者:行者123 更新时间:2023-11-27 22:53:44 25 4
gpt4 key购买 nike

为什么在此代码段中指针周围的括号是必要的?

cout << (*pStr).size() << endl;

回顾我的书后,我终于在我看过的脚注中找到了一点提及。

它说,“--这确保点运算符将应用于指针指向的对象。”

为什么这不起作用?

cout << *pName.size() << endl;

我问这个问题只是因为我的书没有给出很好的解释,而且我只是浪费了很多时间试图弄清楚为什么这行代码对我来说是错误的。 (当然我忘记了括号)

最佳答案

. 的优先级高于 *。所以 *foo.bar 表示 *(foo.bar)

所以这段代码是无效的,因为 . 运算符不能应用于指针

(我使用了一个没有函数调用运算符 () 的示例,因为它的优先级也高于 *,所以它变得复杂了)。

请记住,您可以而且应该编写 pName->size()-> 大概是为了避免所有这些括号而创建的。

关于c++ - 为什么在取消引用的指针上调用成员函数需要括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com