2011-10-06 83 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

,因爲它沒有使用子類的原因,他們的方法實際發生的錯誤在超類中實現了,這就是爲什麼它禾

相關問題