我该如何解决这个问题?
我收到错误:'this' 参数的类型为 const 但函数未标记为 const c++ 重载运算符
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();
}
最佳答案
我的猜测是 numerator()
和 denominator()
成员函数不是 const
成员函数。使它们成为 const
。之后,上述功能应该可以工作了。
顺便说一句,返回类型不需要是bool const
。保持简单并将其更改为 bool
。
关于c++ - 'this' 参数的类型为 const 但函数未标记为 const C++ 重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742750/