#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;
}