为什么此代码给出错误消息“IntelliSense:此操作符函数的参数过多”

int operator+(PerfectNum a,PerfectNum b)
{
    return (a.thenum+b.thenum);
}

PerfectNum是常规类,thenum是int。
该方法在该类中。

最佳答案

您将其定义为成员函数,对吗?

在这种情况下,左侧只是*this:

// .h
class PerfectNum
{
    public:
    int operator+(PerfectNum other) const;
};

// .cpp
int PerfectNum::operator+(const PerfectNum &other) const
{
    return this->thenum + other.thenum;
}

关于c++ - 运算符+重载问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6337139/

10-13 08:29