我在.hpp文件中为++创建了一个重载操作符,然后在.hpp文件中创建了一个调用它的函数。然后,.cpp文件调用该函数,但是当该函数遇到++代码时,它不会缩进重载运算符,而是使用++的默认运算符。为什么不使用我的重载操作符呢?
下面是++的运算符:
iterator& operator ++ () { // pre-increment
std::list<value_type>::iterator i = listOfValues.begin();
advance(i,1);
return &*i;
}
Square_List operator ++ (int) { // post-increment
std::list<value_type>::iterator i = listOfValues.begin();
advance(i,1);
return &*i;
}下面是使用它的函数:
template <typename A_>
void testerIncrement(A_ toInc)
{
toInc = listOfValues.begin();
cout << "\n" << *toInc;
++toInc;
cout << "\n" << *toInc;
++toInc;
}最后是对.cpp文件中函数的调用
ca.testerIncrement(ca.listOfValues.begin());发布于 2012-02-18 11:25:45
使用具有一个类类型参数的非成员函数运算符或对类类型的引用,或者使用没有参数的成员函数运算符,可以重载前缀增量运算符++。
您似乎正在使用非成员运算符。因此您的语法应该是void operator++(迭代器&);//前缀和void operator++(Square_List,int);//后缀。
https://stackoverflow.com/questions/9338208
复制相似问题