二重リンクリストを実装しようとしていて、イテレータを作成したいと思います。構造は次のとおりです。
template<class type>
class List {
size_t listElementCnt;
...
public:
...
class iterator {
...
public:
...
iterator& operator ++();
iterator operator ++(int);
...
};
...
};
次に、両方の演算子のオーバーロードを実装します。
template<class type>
typename iterator& List<type>::iterator::operator ++() {
...
}
template<class type>
typename iterator List<type>::iterator::operator ++(int) {
...
}
現在、2つのエラーがあります。
- メンバー宣言が見つかりません
- タイプ「イテレータ」を解決できませんでした
間接参照演算子や(不)等しい演算子など、他の演算子をオーバーロードしても、エラーは発生しません。エラーはg++-compilerで表示されます。Visual C ++のコンパイラはエラーを表示せず、そこで正常に動作します。