我目前正在尝试为我的方形列表容器重载 .begin() 上的++ 运算符。
我在我的 hpp 文件中有以下内容:
template <typename T_>
class sq_list
{
public:
typedef T_* iterator;
iterator _itr;
square_list( iterator n ) : _itr(n) { }
sq_list operator ++ (sq_list<int> lhs) {
return lhs++;
}
};
目前这需要我将迭代器放在方形列表对象中。 我需要它做的是在 .cpp 文件执行++name.begin(); 时调用++ 方法;而不是将该值放入我的容器中,然后递增该容器。 如何让我的重载函数只在++name.begin() 上工作以增加我的迭代器而不是必须将它放在我的 sq_list 容器中?
谢谢!
最佳答案
一般情况下,需要在迭代器上定义运算符。在这里,你的迭代器是一个指向底层元素类型的指针,所以++ 已经在上面工作了。您是否尝试过在迭代器上简单地调用++,而根本没有 operator++
实现?
关于c++ - 重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352798/