- //设计一个用来表示直角坐标系的Location类,
- //在主程序中创建类Location的两个对象A和B,
- //分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果:
- //A(x1,y1),B(x2,y2)
- //Distance1=d1
- //Distance2=d2
- //其中:x1、y1、x2、y2为指定的坐标值,d1和d2为两个坐标点之间的距离。
- #include<iostream.h> //这个代码在devc++中无法运行
- #include<math.h> //在vc6.0中运行时 ,头文件要变成iostream.h且要将Using namespcae std注释掉
- //using namespace std;
- class Location
- {
- private:
- double x;
- double y;
- public:
- Location(double xx,double yy){x=xx;y=yy;} //构造函数
- double Getx(){return x;} //成员函数,取x坐标的值
- double Gety(){return y;} //成员函数,取y坐标的值
- double distance(Location&); //成员函数,求给定两点之间的距离
- friend double distance(Location &a,Location &b); //友元函数,求给定两点之间的距离
- };
- double Location::distance(Location&b) //成员函数
- {
- double dx=x-b.x;
- double dy=y-b.y;
- return sqrt(dx*dx+dy*dy);
- }
- double distance(Location &a,Location &b) //友元函数
- {
- double dx=a.x-b.x;
- double dy=a.y-b.y;
- return sqrt(dx*dx+dy*dy);
- }
- int main()
- {
- Location p1(-2.0,-2.0);
- Location p2(-3.0,2.0);
- cout<<"A("<<p1.Getx()<<","<<p1.Gety()<<")";
- cout<<",";
- cout<<"B("<<p2.Getx()<<","<<p2.Gety()<<")"<<endl;
- cout<<"Distance1="<<distance(p1,p2)<<endl;
- cout<<"Distance2="<<p1.distance(p2)<<endl;
- }
- //该片段来自于http://www.codesnippet.cn/detail/2508201614986.html
来源: http://www.codesnippet.cn/detail/2508201614986.html