class Fraction
{
private: 
    int numer;                                                    //fraction numerator
    int denom;                                                    //fraction denominator
public:
    Fraction(int num, int den): numer(num), denom(den) {};
    friend Fraction operator+(Fraction& frac1, Fraction& frac2);  // add fraction
    friend Fraction operator-(Fraction& frac);                    // negative fraction 
    friend Fraction operator-(Fraction& frac1, Fraction& frac2);  // subtract fraction
};
Fraction operator+(Fraction& frac1, Fraction& frac2)              // everything OK
{
    return Fraction(frac1.numer * frac2.denom + frac2.numer * frac1.denom, frac1.denom * frac2.denom);
}
Fraction operator-(Fraction& frac)                                // everything OK
{
    return Fraction(-frac.numer, frac.denom);
}
Fraction operator-(Fraction& frac1, Fraction& frac2)              // here begin some problems
{
    return frac1 + (-frac2);
}
Everything work except the last function. It don't see the variable and just give the compiler error:
Error C2679 binary '+': no operator found which takes a right-hand operand of type 'Fraction' (or there is no acceptable conversion)
What's problem?
 
     
     
    