'this' 参数的类型为 const 但函数未标记为 const C++ 重载运算符

An *_*ran 1 c++

我该如何解决?

我收到错误: 'this' argument has type const but function is not marked const c++ overload operator

template <class T>
class Rational {
private:
    T n = 0;
    T d = 1;
public:
    Rational() = default;
    T numerator() {
        return n;
    }
    T denominator() {
        return d;
    }
};

template <class T>
inline bool const operator ==(const Rational <T> & lhs, const Rational <T>& rhs)  {

    return lhs.numerator() * rhs.denominator() == lhs.denominator() * rhs.numerator();

}
Run Code Online (Sandbox Code Playgroud)

R S*_*ahu 5

我的猜测是,numerator()和denominator()成员函数不是const成员函数。制作它们const。之后,上述功能应该可以工作。

顺便说一句,返回类型不需要是bool const. 保持简单并将其更改为bool.