【发布时间】:2011-12-02 10:49:12
【问题描述】:
已解决 * 实际上发生错误是因为它没有使用子类的方法,因为它们是在超类中实现的,这就是为什么如果从 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;
【问题讨论】:
-
什么错误?访问无效或空指针是访问冲突还是段错误?
-
关于断言失败的事情
-
我正在尝试做这样的事情。每人=新运动员();人 per2 = 每人; per2->ShowName();应该工作
-
在调试器中运行代码,看看哪里出错了。
-
@HoNgOuRu: 一些关于... 包括错误的完整描述、引发错误的位置以及关于
ListaIterable和Iterador的一些相关代码。
标签: c++ inheritance interface