好的,所以我現在有兩個使用迭代器的(完全不相關的,不同的項目)類。一個有iterator
和reverse_iterator
按預期工作,另一個,當前有iterator
和一個半分開的const_iterator
(具體地說,因爲const_iterator從迭代器派生,代碼LinkedList<int>::iterator i = const_list.begin()
是有效的,並且允許您修改const定義的列表...) 。
我打算把所有四種類型添加到這個類...如果我可以。如何將DRY原理應用於C++中的迭代器? (iterator,const_iterator,reverse_iterator,const_reverse_iterator)
我將如何繼續最小化複製/粘貼代碼並僅更改返回類型?創建一個基類,如base_iterator
繼承?創建一個iterator
或const_iterator
並從那繼承?繼承一些std :: class?如果這些案例中的任何一個都是「最好」的方法,那麼代碼在哪裏?
也許沒有其他選擇是好的?我很迷茫,找不到很多參考資料。
任何意見是讚賞,但請記住,我是新來的主題(通常迭代器和C + +,特別是OOP)。我已經試過了,用於研究GCC附帶的頭文件 - 它們並不完全是我正在尋找的教程。
STDLIB實現的,一般情況差的選擇,從學習,任何語言。他們經常需要處理外部接口(例如操作系統,其他語言),可能需要向後兼容過去十年的代碼,以及其他一些不適用於您的因素。總之:他們不是以教學爲目標。一本好書是必須的,它會爲你提供更好的服務。 – 2009-11-21 21:28:35