c++ / c++重载自增操作符
C++/g++ overload increment operators
我试图实现一个双链表,并希望创建一个迭代器。结构为:
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) {
...
}
现在有两个错误:
- 成员声明未找到
- 类型"iterator"无法解析
在成员函数的行外定义中,函数的返回类型不在类作用域中,因为还没有看到类名。所以把你的定义改成这样:
template<class type>
typename List<type>::iterator& List<type>::iterator::operator ++() {
...
}
template<class type>
typename List<type>::iterator List<type>::iterator::operator ++(int) {
...
}
您需要在返回类型中限定iterator
:
template<class type>
typename List<type>::iterator& List<type>::iterator::operator ++() {
...
}
template<class type>
typename List<type>::iterator List<type>::iterator::operator ++(int) {
...
}
相关文章:
- 为什么map有操作符[],set没有
- 我可以将C 17 Capture lambda ConstexPR转换操作符的结果用作函数指针模板非类型参数吗?
- c++新操作符通过libstdc++占用大量内存(67MB)
- 复制/移动操作符是否可以安全地用于实现复制/移动分配操作符
- 提升::精神::因果报应使用有条件的替代操作符(|)
- 促进几何体操作符
- 如果操作符delete没有实现,为什么不编译它
- 在使用放置新操作符时,我真的需要担心对齐问题吗
- 我怎样才能让getline操作符工作
- 在重载的全局new操作符中使用静态对象会导致核心转储运行时错误
- 提升ipc new和delete操作符
- 在c++中使用new操作符动态分配数组
- 操作符的大小在C++
- 如何将向量中的对象传递给操作符
- 一个更容易的拷贝分配操作符实现
- 如何重写复杂的c++代码行(嵌套的三元操作符)
- boost::make_shared没有调用(放置)操作符new
- 新操作符(以及malloc)无法分配~450MB的内存
- 类、异常和操作符
- 当delete操作符释放内存时,我为什么需要析构函数