A. *_*Rex 37 c++ operator-overloading
我有一个重载的C++类,operator[]数组下标/括号运算符.这在我班级以外非常方便,在那里我可以写foo[bar].但是,当我在我的类中实现方法时,我无法弄清楚如何使用这种表示法.
我知道我可以写operator[](bar),this->operator[](bar)但这些都相当笨重,并且首先会带走操作员的许多便利.(我也知道我可以只添加调用操作的新方法.)有没有一种方法我可以写this[bar]或this->[bar]或一些类似的好看?
注意:这个问题也可能适用于许多一元运算符(例如,我如何foo++从课堂内调用?),但我个人只关心operator[].
编辑:我发布后很快意识到我可以使用(*this)[bar].到目前为止,所有答案都表明了这一点.还有其他选择吗?
用
(*this)[bar]
Run Code Online (Sandbox Code Playgroud)
调用operator[]实例对象的 。
this[bar]将this指针视为数组并索引该数组的bar第 -th 个元素(返回可能无效的对象引用)。