这是我的后增量运算符重载声明。
loc loc::operator++(int x)
{
loc tmp=*this;
longitude++;
latitude++;
retrun tmp;
}
我的班级建设者
loc(int lg, int lt)
{
longitude = lg;
latitude = lt;
}
在主要功能中,我的编码如下
int main()
{
loc ob1(10,5);
ob1++;
}
编译此文件时,出现以下错误
opover.cpp:56:5:错误:“ loc loc :: operator ++(int)”的原型确实
与“ loc”类中的任何一个都不匹配
opover.cpp:49:5:错误:候选者是:loc
loc :: operator ++()opover.cpp:在“ int main()”函数中:
opover.cpp:69:4:错误:后缀“ ++”未声明“ operator ++(int)”
最佳答案
修复来自的类声明
class loc
{
// ...
loc operator++();
}
至
class loc
{
// ...
loc operator++(int);
}
[编辑删除了有关按价值返回的误导性言论。按值返回当然是后缀运算符的常用语义++]
关于c++ - 在C++中的运算符重载后增加,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8006264/