C++ 重载运算符
我当前正在尝试为我的平方列表container重载.begin()上的++运算符 在我的hpp文件中,我有以下内容: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
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()上重载++运算符”是没有任何意义的,无论您以何种方式旋转它。请您将问题写得更整齐一点好吗?