求助:请高手给分析一下程序流程
#include<iostream.h>class A
{protected:int x,y;
public:
A(int x1=0,int y1=0)
{x=x1;y=y1;}
A(A &s){x=s.x;y=s.y;
cout<<"*****1"<<endl;
}
A &operator=(A &s)
{x=s.x;
y=s.y;
cout<<"*****2"<<endl;
return *this;
}
void display()
{cout<<x<<y<<endl;}
~A(){cout<<"out class A!"<<endl;}
};
void fn(A s)
{cout<<"*****3"<<endl;
s.display();
}
main(){A a(1,1),b(2,2);
A c=a;
fn(a);
a=b;
}
最好详细一点,谢谢