OK、それで私は今イテレータを使っている2つの(完全に無関係な、異なるプロジェクト)クラスを持っています。1つは意図したとおりに機能し、もう1つは現在のものがiterator
あり、半壊しています(具体的には、const_iteratorはイテレーターから派生しているため、コードは有効であり、const定義リストを変更できます...)。
このクラスに4つのタイプすべてを追加するつもりです...可能であれば。 reverse_iterator
iterator
const_iterator
LinkedList<int>::iterator i = const_list.begin()
コードのコピー/貼り付けを最小限に抑え、リターンタイプのみを変更するにはどうすればよいですか?base_iterator
継承したい基本クラスを作成しますか?iterator
またはを作成し、const_iterator
それから継承しますか?いくつかのstd::クラスから継承しますか?これらのケースのいずれかが「最良の」アプローチである場合、どのコードがどこに行きますか?
おそらく、選択肢のどれも良いものではありませんか?私はここでかなり迷っていて、多くの参考資料を見つけることができません。
アドバイスをいただければ幸いですが、私はこのテーマに慣れていないことを覚えておいてください(イテレーターとC ++の両方、特にOOP)。私は無駄に、GCCに付属しているヘッダーファイルを調べようとしましたが、それらは私が探しているチュートリアルではありません。