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/