friend友元函数不是可以访问私有成员吗?我这里为什么提示x没有被定义



```c++
#include <iostream>
using namespace std;
 class Myclass 
{public:
  Myclass (int a,int b) { x=a;y=b;}
  friend void copy(Myclass & my);
  void print( )
  { cout<<"x="<<x<<endl;
    cout<<"y="<<y<<endl;
  } 
private:
int x,y;
};
void copy(Myclass & my)
{
    x=my.x;
    y=my.y;
}
int main()
{
    Myclass m1(1,2);
    Myclass m2(3,4);
    m1.print();
    m2.print();
    copy(m1);
    m2.print();
    return 0;
}

```


#include <iostream>

using namespace std;

class Myclass
{
public:
    Myclass(int a, int b)
    {
        x = a;
        y = b;
    }

    void print() const
    {
        cout << "x=" << x << endl;
        cout << "y=" << y << endl;
    }

private:
    int x, y;

    friend void copy(Myclass &m1, const Myclass &m2);
};

void copy(Myclass &m1, const Myclass &m2)
{
    m1.x = m2.x;
    m1.y = m2.y;
}

int main()
{
    Myclass m1(1, 2);
    Myclass m2(3, 4);
    m1.print();
    m2.print();
    copy(m2, m1);
    m2.print();
    return 0;
}