这是我的后增量运算符重载声明。

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/

10-14 20:49