我正在尝试建立一个列表。 当我试图到达“Iterator”类中的字段“node”时,我的问题出现了。
#include <iostream>
using namespace std;
template<typename T>
class List{
class Node;
Node* head;
Node* first;
int size;
public:
class Iterator;
List(): head(new Node), first(new Node), size(0){};
void insertFirst(T& element);
void insertFirst(T element);
int getSize();
Iterator& begin();
};
template<class T>
class Iterator{
friend class List<T>;
typename List<T>::Node* node;
List<T>* list;
public:
Iterator(List<T> src):node(NULL), list(&src){}
};
template<class T>
typename List<T>::Iterator& List<T>::begin(){
Iterator it(*this);
it.node=first; <--- ***right here***
return it;
}
我收到“Field'节点'无法解析”。
我不知道我的代码有什么问题。
如果有人可以提供帮助,我将非常感谢。
答案 0 :(得分:0)
声明类型typename List<T>::Iterator
但未定义。您定义了一个完全独立的类型,名称有点类似。你可能想写
template <typename T>
class List<T>::Iterator {
// ...
};