尝试在C ++中使用超类时出现运行时错误

时间:2011-10-06 17:25:53

标签: c++ inheritance interface

求助 * 实际上错误发生是因为它没有使用子类的方法,因为它们是在超类中实现的,这就是为什么它从ListaIterador类调用但不工作的原因如果从上层阶级打来的话。

您好我创建了一个泛型类型的ListIterator类,它扩展了Iterator,因此我在ListIterator类中实现了迭代器的方法。我们的想法是创建一个迭代器,只是为了使用Iterator类中提供的方法(只读方法)。 首先,我创建一个ListIterator,插入一些东西,然后我想创建一个迭代器对象并使用readonly方法,但在列表上。 我希望自己清楚,注意我用西班牙语编码,所以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 :(得分:0)

实际上错误发生是因为它没有使用子类的方法,因为它们是在超类中实现的,这就是为什么它