型に値を代入する際の奇妙な問題のように思われることに困惑しています。これは私に問題を与えるコードです:
1. ListIterator<int> itr = lst.begin();
2.itr++;
3.itr = lst.begin();
したがって、1行目と2行目は正常に機能します。ただし、宣言後に itr = lst.begin() を作成しようとすると、次のエラーが発生します。
ListMain.cpp:46: error: no match for ‘operator=’ in ‘itr = lst. List<T>::begin [with T = int]()’
List.h:183: note: candidates are: void ListIterator<T>::operator=(ListIterator<T>&) [with T = int]
今、私の operator= は現在これです:
void operator = (iterator & rhs) {theList = rhs.theList; currentLink = rhs.currentLink;}
したがって、私の begin() 関数は ListIterator を返すので、これは単にリスト イテレータを再割り当てするべきではありませんか、それとも何か不足していますか?
この問題に対する洞察をいただければ幸いです。