#include<iostream.h>
#include<math.h>
class Point
{ public:
Point(int xx=0,int yy=0) {X=xx;Y=yy;} //构造函数的定义
Point(Point &P); //拷贝构造函数定义
int GetX() {return X;} //得到X的值。
int GetY() {return Y;} //得到Y的值
private:
int X,Y;
};
Point :: Point(Point &P) //拷贝构造函数的实现
{ X=P.X;
Y=P.Y;
cout<<"point拷贝构造函数的调用"<<endl;
cout<<"Point"<<endl;
}
//类的组合
class Distance
{ public:
Distance(Point XP1,Point XP2);
double GetDis(){return Dist;}
private:
Point P1,P2;
double Dist;
double x,y;
};
//组合类的构造函数
Distance::Distance(Point XP1,Point XP2):P1(XP1),P2(XP2)
{ cout<<"Distance 构造函数调用"<<endl;
x=double(P1.GetX()-P2.GetX());
y=double(P1.GetY()-P2.GetY());
Dist=sqrt(x*x+y*y);
}
void main()
{ Point myp1(1,1), myp2(4.5);
Distance myd(myp1,myp2);
cout<<"the distance is"<<endl;
cout<<myd.GetDis()<<endl;
}