请问一个C++有关问题,敢请高手指导

请教一个C++问题,敢请高手指导
#include <iostream>  
using   namespace   std;  
class   Point  
{  
public:  
Point(int   xx=0,int   yy=0){x=xx;y=yy;}  
Point(point   &p);  
int   getx(){return   x;}  
int   gety(){return   y;}  
private:  
int   x,y;  
};  
Point::Point(point   &p)  
{x=p.x   ;y=p.y;cout < < "调用拷贝构造函数 " < <endl;}  
void   fun1(Point   p)  
{cout < <p.getx() < <endl;}  
Point   fun2()  
{   Point   A(1,2);  
return   A;}  
int   main()  
{   Point(4,5);  
Point   B(A);  
cout < <B.getx() < <endl;  
fun1(B);  
B=fun2();  
cout < <B.getx() < <endl;  
}  
这段程序有错吗?为何提示A为定义呢?


------解决方案--------------------
你哪个A是在子函数内部的临时变量,当函数执行完后, 临时变量就消亡了,你再使用他,当然就没有了

------解决方案--------------------
Point(4,5);

这写的是啥?

改成

Point A(4,5);