我在.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());
答案 0 :(得分:4)
使用具有类类型的一个参数的非成员函数运算符或对类类型的引用,或者使用不带参数的成员函数运算符,重载前缀增量运算符++。
您似乎正在使用非成员运营商。所以你的语法应该是 void operator ++(iterator&amp;); //字首 和void operator ++(Square_List,int); //后缀。