C++:从类中访问operator []的便捷方式?

A. *_*Rex 37 c++ operator-overloading

我有一个重载的C++类,operator[]数组下标/括号运算符.这在我班级以外非常方便,在那里我可以写foo[bar].但是,当我我的类中实现方法时,我无法弄清楚如何使用这种表示法.

我知道我可以写operator[](bar),this->operator[](bar)但这些都相当笨重,并且首先会带走操作员的许多便利.(我也知道我可以只添加调用操作的新方法.)有没有一种方法我可以写this[bar]this->[bar]或一些类似的好看?

注意:这个问题也可能适用于许多一元运算符(例如,我如何foo++从课堂内调用?),但我个人只关心operator[].

编辑:我发布后很快意识到我可以使用(*this)[bar].到目前为止,所有答案都表明了这一点.还有其他选择吗?

Eva*_*ran 56

(*this)[bar];
Run Code Online (Sandbox Code Playgroud)

对我来说很好.


Mr *_*ooz 7

(*this)[bar]
Run Code Online (Sandbox Code Playgroud)

调用operator[]实例对象的 。

this[bar]this指针视为数组并索引该数组的bar第 -th 个元素(返回可能无效的对象引用)。