我正在尝试实现一个双链表并想要创建一个迭代器。结构是:
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) {
...
}
现在有两个错误:
- 未找到成员声明
- 类型“迭代器”无法解析
当我重载其他运算符时,例如取消引用或 (in-)equals 运算符,没有错误。错误只出现在 g++ 编译器中。visual c++ 的编译器没有显示任何错误,并且在那里工作正常。