Операторы перегрузки

В настоящее время я пытаюсь перегрузить оператор ++ на.begin() для моего контейнера со списком квадратов.

Мой в моем hpp файле у меня есть следующее:

template <typename t_="">
 class sq_list 
 {

 public:
 typedef T_* iterator;

 iterator _itr;
 square_list( iterator n ) : _itr(n) { }


 sq_list operator ++ (sq_list<int> lhs) { 
 return lhs++;
 }
 };
</int></typename>

В настоящее время это требует, чтобы я поставил итератор внутри объекта с квадратным списком. Мне нужно, чтобы это вызвало метод ++, когда файл.cpp имеет ++name.begin(); вместо того, чтобы помещать это значение в мой контейнер и затем увеличивать этот контейнер. Как заставить мою перегруженную функцию работать только c++name.begin(), чтобы увеличить мой итератор вместо того, чтобы помещать его в мой контейнер sq_list?

Благодарю!

1 ответ

В общем, вам нужно определить оператор на итераторе. Здесь ваш итератор является указателем на тип базового элемента, поэтому ++ уже работает над этим. Вы пробовали вызывать ++ просто на итераторе без реализации operator++?

licensed under cc by-sa 3.0 with attribution.