решено * На самом деле ошибка произошла, потому что она не использовала методы подкласса, потому что они были реализованы в суперклассе, поэтому она работала, если вызывалась из класса ListaIterador, но не если вызывается из высшего класса.
Привет! Я создал класс ListIterator универсального типа, он расширяет Iterator, поэтому я реализовал методы итератора в классе ListIterator. Идея состоит в том, чтобы создать итератор только для использования методов, доступных в классе Iterator (методы только для чтения).
Сначала я создаю ListIterator, вставляю некоторые вещи, а затем я хочу создать объект итератора и использовать методы только для чтения, но поверх списка.
Надеюсь, я дал ясно понять, что я пишу по-испански, поэтому Iterador означает Iterator, Insertar - это Insert, а Avanzar - Next.
этот код вызывает ошибку выполнения во время выполнения и не знаю почему, может быть, вы можете дать мне решение
ListaIterable<int> *iter = new ListaIterable<int>;
Iterador<int> *ITERADOR = iter;
iter->Insertar(123); //note here I use iter and not ITERATOR for inserting.
iter->Insertar(987); //also here
cout << ITERADOR->ElementoActual()<<endl; //now this method should show the element
ITERADOR->Avanzar() // means next()
cout << ITERADOR->ElementoActual()<<endl;