У меня есть класс С++, который перегружает operator[]
, оператор индексов/скобок массива. Это ужасно удобно за пределами моего класса, где я могу написать foo[bar
]. Однако я не могу понять, как использовать эту нотацию, когда я реализую методы внутри своего класса.
Я знаю, что могу писать operator[](bar)
или this->operator[](bar)
, но они довольно громоздки и, в первую очередь, отнимают много удобства оператора. (Я также знаю, что могу просто добавить новый метод, который вызывает оператор.) Есть ли способ написать this[bar]
или this->[bar]
или что-то подобное приятное?
Примечание. Этот вопрос может также применяться ко многим унарным операциям (например, как я могу называть foo++
из класса?), но лично я забочусь только о operator[]
.
Изменить: я понял сразу после публикации, что могу использовать (*this)[bar]
. Все ответы до сих пор также предлагали это. Существуют ли другие альтернативы?