在这个重载左移运算符中为什么myinteger类型的m不能换成&m


```c++
#include<iostream>
using namespace std;
class myinteger
{
    friend ostream& operator<<(ostream& cout, myinteger m);
public:
    myinteger()
    {
        m_num = 0;
    }
    myinteger& operator++()
    {
        m_num++;
        return *this;
    }
    myinteger operator++(int)
    {
        myinteger temp;
        temp = *this;
        this->m_num++;
        return temp;
    }
private:
    int m_num;
};
ostream& operator<<(ostream& cout, myinteger m)
{
    cout << m.m_num<< endl;
    return cout;
}

void test01()
{
    myinteger m1;
    cout << ++m1 << endl;
    cout << m1++ << endl;
}
int main()
{
    test01();
    system("pause");
    return 0;
}

```