класса?
0) сделать перегрузку 1) обращаться в ней к подчленам члена класса
Так может не надо ничего перегружать, а просто члены класса сделать публичными?
Если не ошибаюсь, в итераторах было что-то подобное, не?
ну в общем да
И как оно там работает, не подскажете? У меня нет возможности глянуть в реализацию, на cppreference не вижу этого вообще.
Вызывается функция которая означает перегруженный оператор стрелочка оператор стрелочка получает указатель This и что ещё ? Да ничего больше. Есть правило что оператор стрелочка должен вернуть некий тип которому будет применимо указать ещё раз оператор стрелочка . Стало быть в случае итератора У нас есть внутри какая-то ссылка на элемент контейнера и мы должны вернуть что адрес этого элемента тогда вместо This итератора подставиться адрес элемента и дальше доступ уже будет к этому элементу
Извиняюсь не дописал там ещё есть возможность оператору стрелочка вернуть сырой указатель вот по этой ветке реализации мы и идём
Что-то тоже сейчас задумался, как это работает с доступом к элементам: auto it = someContainer<T>.begin(); it->anyMemberOfT; cppinsight раскрывает это как: it.operator->()->a; Это тоже что-то из разряда: " "s раскрывается в operator "s"(), где компилятор этот вызов поставляет сам?
Обсуждают сегодня