关于重载运算符->的问题
读c++primer时,发现这样一个问题;原文如下
point->action();
由于优先级规则,它实际等价于编写:
(point->action)();
换句话说,我们想要调用的是对 point->action 求值的结果。编译器这样对该代码进行求值:
如果 point 是一个指针,指向具有名为 action 的成员的类对象,则编译器将代码编译为调用该对象的 action 成员。
否则,如果 action 是定义了 operator-> 操作符的类的一个对象,则 point->action 与 point.operator->()->action 相同。即,执行 point 的 operator->(),然后使用该结果重复这三步。
否则,代码出错。
问题:为什么point->action 与 point.operator->()->action 相同
我感觉应该与point.operator->()action相同。