Ошибка времени выполнения при попытке использовать суперкласс в C ++ - PullRequest
0 голосов
/ 06 октября 2011

решено * На самом деле ошибка произошла, потому что она не использовала методы подкласса, потому что они были реализованы в суперклассе, поэтому она работала, если вызывалась из класса 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;

1 Ответ

0 голосов
/ 07 октября 2011

На самом деле ошибка произошла, потому что она не использовала методы подкласса, потому что они были реализованы в суперклассе, поэтому она работала

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...