error C2662: “int Fraction::numerator(void)”: 不能将“this”指针从“const Fraction”转换为“Fraction &”

这是程序报错

  • error C2662: “int Fraction::numerator(void)”: 不能将“this”指针从“const Fraction”转换为“Fraction &”
  • note: 转换丢失限定符

这是源码

friend Fraction& operator+(const Fraction a, const Fraction b)
{
    return Fraction(a.numerator() + b.numerator(), a.denominator() + b.denominator());
}

解决方法
去掉const

    friend Fraction& operator+(Fraction a, Fraction b)
    {
        return Fraction(a.numerator() + b.numerator(), a.denominator() + b.denominator());
    }

这是为什么呢?

你可能感兴趣的:(error C2662: “int Fraction::numerator(void)”: 不能将“this”指针从“const Fraction”转换为“Fraction &”)