Невозможно получить доступ к элементу данных итератора, используя объект - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь перегрузить оператор +, я хочу добавить два узла с помощью итератора, но у меня возникают проблемы с доступом к итератору из другого объекта.

Вот мой оператор +:

 type operator+(const largeInt<type> &other) {
     iter = list.end();
     other.iter = other.list.end() //need help here

     type newNumb1, newNumb2;

     newNumb1 = *iter;
     newNumb2 = other.*iter; //need help here

     return newNumb1 + newNumb2;
 }

У меня есть typename List<type>::Iterator iter; в качестве закрытого члена данных внутри класса largeInt.

Класс итератора сохраняется в другом классе, он вложен в класс связанного списка, поэтому для создания объекта Iterator IЯ должен сделать List<type>::Iterator, хотя это работает, я не могу получить к нему доступ с помощью другого объекта largeInt, переданного в качестве ссылки.

ОБНОВЛЕНИЕ:

 type operator+(const largeInt<type> &other) {
     typename List<type>::Iterator other_iter = other.iter; 
     type newNumb1, newNumb2;

     newNumb1 = *iter;
     newNumb2 = *other_iter;

     return newNumb1 + newNumb2;
 }

Это сработало, но я хочу сделатьТо же самое, но без дополнительного итератора любая помощь будет полезна.

1 Ответ

0 голосов
/ 27 апреля 2019

В этом простом примере вам вообще не нужно использовать какие-либо локальные переменные:

type operator+(const largeInt<type> &other) {
    return *iter + *(other.iter);
}
...