char& operator[]bool operator==有何区别?一个将操作数放在[]之间,而另一个将操作数放在==之后。它怎么知道将操作数放在哪里?开括号和闭括号有什么特别的技巧吗?

最佳答案

它怎么知道将操作数放在哪里?


嗯因为标准这么说?

§11.5.5 Subscripting [over.sub]/1


  operator[]应该是具有一个参数的非静态成员函数。它实现下标语法
  
  postfix-expression [expr-or-braced-init-list]
  
  因此,如果存在x[y]并且通过重载解析机制将运算符选择为最佳匹配函数,则下标表达式x.operator[](y)对于类型为x的类对象T解释为T​::​operator[](T1)。 .match.best])。

关于c++ - cpp运算符重载操作数位置[] vs ==,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52565857/

10-13 08:22