C++后置++重载 不知到问题所在

`

class a
{
public:
    a operator++(int)   //后置++
    {
        a temp = *this;
        b++;
        return temp; 
    }
    int b=10;
};

ostream & operator<<(ostream & cout, a &c)
{
    cout<< c.b;
    return cout;
}

int main()
{
    a c;
    cout<<c++;
}

#include <iostream>

using namespace std;

class a
{
public:
    a operator++(int)   //后置++
    {
        a temp = *this;
        b++;
        return temp;
    }

    int b = 10;
};

ostream &operator<<(ostream &cout, a c)  // 把 & 去掉,因为后置自增运算符返回的不是引用。
{
    cout << c.b;
    return cout;
}

int main()
{
    a c;
    cout << c++;
}

//改成
ostream & operator<<(ostream & cout, const a &c) //只有const引用才能绑定临时变量