2011-10-06 86 views
-3

已解决*实际上发生错误是因为它没有使用子类的方法,因为它们是在超类中实现的,所以它在从ListaIterador但如果来自上层,则不要这样做。尝试在C++中使用超类时发生运行时错误

您好我创建了一个类的ListIterator一个通用型的,它扩展了迭代器,所以我做实现迭代器中的ListIterator类的方法。这个想法是为了使用Iterator类中可用的方法(只读方法)创建一个迭代器。 首先我创建一个ListIterator,插入一些东西,然后我想创建一个迭代器对象,并使用只读方法,但在列表上。 我希望自己清楚,注意我是用西班牙文编码的,所以Iterador意味着迭代器,Insertar是插入的,Avanzar意味着下一个。

这个代码抛出运行时执行错误,不知道为什么,也许你可以给我一个解决方案

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; 
+0

**什么错误?**它是一个访问冲突或段错误访问无效的或空指针? –

+0

有关断言失败 – HoNgOuRu

+0

我正在尝试这样做。 Person per = new Athlete(); Person per2 = per; per2-> ShowName(); 应工作 – HoNgOuRu

回答

0

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

相关问题