C++ 重载运算符

C++ 重载运算符,c++,visual-studio-2010,iterator,operators,operator-overloading,C++,Visual Studio 2010,Iterator,Operators,Operator Overloading,我当前正在尝试为我的平方列表container重载.begin()上的++运算符 在我的hpp文件中,我有以下内容: template <typename T_> class sq_list { public: typedef T_* iterator; iterator _itr; square_list( iterator n ) : _itr(n) { } sq_list operator

我当前正在尝试为我的平方列表container重载.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++;
        }
    };
模板
类sq_列表
{
公众:
typedef T_*迭代器;
迭代器_itr;
平方列表(迭代器n):\u itr(n){}
sq_列表运算符++(sq_列表lhs){
返回lhs++;
}
};
目前,这需要我将迭代器放在square list对象中。 我需要它做的是在.cpp文件使用++名称.begin()时调用++方法;而不是将该值放入容器中,然后递增该容器。 如何让重载函数只处理++名称。begin()以增加迭代器,而不必将其放入sq_列表容器中


谢谢

通常,需要在迭代器上定义运算符。这里,迭代器是一个指向底层元素类型的指针,因此++已经可以处理它了。您是否尝试过在迭代器上简单地调用++,而根本没有
运算符+
实现?

@LuchianGrigore如何让我的++运算符只处理迭代器本身而不是将其放入方形列表对象中为什么
运算符+
需要两个
sq_列表
参数(隐式
this
lhs
)?据我所知,您希望为迭代器重载
运算符+++
(顺便说一句,您没有使用该代码)。既然
迭代器
是一个指针,为什么您需要重载运算符?指针已经有了一个
运算符+
@Grizzly这是什么隐含的?我将lhs作为我的变量来获取iterator@Grizzly我正在我创建的自定义容器(方形列表)上重载++运算符因此,我认为默认的++运算符不应该工作。很抱歉,但是“在我的平方列表container的.begin()上重载++运算符”是没有任何意义的,无论您以何种方式旋转它。请您将问题写得更整齐一点好吗?