类模板嵌套类的问题——在线等
想模仿STL定义一个List类模板,并在里面定义了迭代器类Iterator,请问类Iterator的成员函数定义要怎样的形式?
template<class T>
class List
{
struct Node
{
T data;
Node * prior;
Node * next;
};
public:
class Iterator
{
Node * pNode;
public:
Iterator(){}
Iterator(Node* p):pNode(p){}
operator Node * (){return pNode;}
T & operator*(){return pNode->data;}
Iterator & operator++();
........
};
.......
};
比如这个函数:Iterator & operator++();
在类外要怎样定义?如下可以吗:
template<class T>
inline Iterator& List<T>::Iterator::operator ++()
{
.........
}
但在VC下编译通不过,提示:
List.cpp(13) : error C2143: 语法错误 : 缺少“;”(在“&”的前面)
List.cpp(13) : error C2433: “Iterator” : 不允许在数据声明中使用“inline”
List.cpp(13) : error C2501: “Iterator” : 缺少存储类或类型说明符
List.cpp(13) : error C2065: “T” : 未声明的标识符
List.cpp(13) : error C2955: “List” : 使用类模板需要模板参数列表
请大侠帮帮我,万分感谢!