0

テンプレート リンク リストを C++ で実装しようとしていますが、これには Iterator と ConstIterator があると想定されています (リストを変更することはできません)。そして、呼び出されたメソッドがリスト オブジェクトに一致するイテレータを返す必要があります。たとえば、begin() が const リストで呼び出された場合、ConstIterator が返され、非 const リストでは Iterator が返されます。

どうすればいいですか?

ありがとう。

4

3 に答える 3

5

このような:

ConstIterator begin() const;
Iterator begin(); //  ^^^^^

また、追加したいかもしれませんcbegin

ConstIterator cbegin() const;
于 2013-06-11T23:16:23.340 に答える
2

関数をオーバーロードするだけです:

 Iterator getIterator();
 ConstIterator getIterator() const;
于 2013-06-11T23:16:11.717 に答える
1

これは、単純な C++ のオーバーロードで実現できます。すなわち:

ConstIterator GetList(const List* x) const { ... }
Iterator GetList(List* x) { ... }
于 2013-06-11T23:17:05.653 に答える