У меня есть следующий код, который сломан. Я могу исправить это, изменив определенную строку в коде (см. Комментарий). В чем причина проблемы?
#include <iostream>
using namespace std;
class Number{
public:
    int n;
    Number(int a):n(a){}
    //when I change the following to
    //friend Number& operator++(Number& source, int i)
    //then it compiles fine and correct value is printed
    friend Number operator++(Number& source, int i){
        ++source.n;
        return source;
    }
};
int main() {
    Number x(5);
    x++++; //error: no 'operator++(int)' declared for postfix '++' [-fpermissive]
    cout<<x.n;
    return 0;
}
