【发布时间】:2017-11-14 05:57:21
【问题描述】:
我的特殊情况涉及自定义迭代器,但这个问题是一般问题。我不确定如何为这个后缀递增方法编写返回类型:
template<typename T>
struct MyIterator {
size_t loc;
MyIterator operator++(int) {
MyIterator temp(*this);
++loc;
return temp;
}
};
这样可以编译,但是这样也可以:
template<typename T>
struct MyIterator {
size_t loc;
MyIterator<T> operator++(int) {
MyIterator<T> temp(*this);
++loc;
return temp;
}
};
另外两种配置也可以正常工作(即将<T> 仅放在MyIterator 的一个实例上)。有没有“正确”的方式来写这个?有关系吗?
【问题讨论】:
-
没关系。你看到的是注入的类名
标签: c++ class oop templates operator-overloading