第七周任务二

来源:互联网 发布:linux vim 颜色配置 编辑:程序博客网 时间:2024/06/05 17:59
 
#include <iostream>#include <cmath>using namespace std;class CPoint{private:double x;double y;public:CPoint ( double xx = 0 , double yy = 0 ): x ( xx ), y ( yy ){}double distance1 ( CPoint & );//成员函数的声明friend double distance2 ( CPoint &, CPoint &);//友元函数的声明        double getx() { return x;}  //公共接口        double gety() { return y;}};double distance3 ( CPoint &, CPoint &);//一般函数的声明double CPoint :: distance1 ( CPoint & t)//成员函数的实现,要加域运算符{return sqrt( ( t.x - x) * (t.x - x ) + ( t.y - y ) * ( t.y - y ) );}double  distance2 ( CPoint & t1, CPoint & t2)//友元函数的实现,不属于类,不需要加域运算符{return sqrt( (t1.x - t2.x ) * ( t1.x - t2.x ) + (t1.y - t2.y ) * (t1.y - t2.y ) );}double distance3 ( CPoint & t1, CPoint & t2){return sqrt( (t1.getx() - t2.getx() ) * (t1.getx() - t2.getx() ) + (t1.gety() - t2.gety() ) * (t1.gety() - t2.gety() ) );}//以公共接口的形式访问私有成员int main () {CPoint c1 ( 3 , 2 ) , c2 ( 5 , 7 );cout << "此两点之间的距离为:" << c1. distance1 (  c2 ) << endl;cout << distance2 ( c1,  c2 ) << endl;cout << distance3 ( c1 , c2 ) << endl;system("pause");return 0;}

调用友元函数要提前声明