c++ - 重载运算符

标签 c++ visual-studio-2010 iterator operators operator-overloading

我目前正在尝试为我的方形列表容器重载 .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/

相关文章:

c++ - 有没有办法使用 C++ 在 USB 端口上读/写?(windows 窗体应用程序)

visual-studio-2010 - 使用TFS 2010进行依赖管理

c++ - upper_bound() 给出了错误的输出

c++ - C++ 中独立于操作系统的并行 for 循环

c++ - C++发送邮件的代码

visual-studio-2010 - 在调试客户端-服务器应用程序时在解决方案中运行这两个应用程序

c++ - 使用反向迭代器 boost ptree 失败

c++ - 读取 vector 迭代器的错误访问

c++ - 如何使用 ISpLexicon::GetWords 获取单词列表?

c++ - QT XML 阅读器每次读取相同的标签