为类型赋值似乎是一个奇怪的问题,这让我感到困惑。这是给我问题的代码:
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,这不应该只是重新分配列表迭代器还是我错过了什么?
对此问题的任何见解将不胜感激。