第7周项目1-成员函数、友元函数和一般函数有区别(2)

来源:互联网 发布:有网络但无法识别网站 编辑:程序博客网 时间:2024/04/27 10:27

/*Copyright (c) 2016, 烟台大学计算机学院           *All rights reserved.           *文件名称:c7weeks.cpp           *作者:张天择          *完成日期:2016年 4月21日           *版本号:vc++6.0           */       

#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 &); //参数用const CPoint &更佳      friend double distance2(CPoint &, CPoint &) ;      double getX()      {          return x;      }      double getY()      {          return y;      }  };    double distance3(CPoint &,CPoint &) ;    double CPoint::distance1(CPoint &p)  {      double dx=(x-p.x), dy=y-p.y;      return sqrt(dx*dx+dy*dy);  }    double distance2(CPoint &p1,CPoint &p2)  {      double dx=(p1.x-p2.x), dy=p1.y-p2.y;      return sqrt(dx*dx+dy*dy);  }    double distance3(CPoint &p1,CPoint &p2)  {      double dx=(p1.getX()-p2.getX()), dy=p1.getY()-p2.getY();      return sqrt(dx*dx+dy*dy);  }    int main()  {      CPoint p1(10,13), p2(-5,6);      cout<<"1. "<<p1.distance1(p2)<<endl;      cout<<"2. "<<distance2(p1,p2)<<endl;      cout<<"3. "<<distance3(p1,p2)<<endl;      return 0;  }  





注意!回顾域运算符(::),可以限定符号所处的域,如std::cout,说cout是std命名空间中的,再如Time::add_sec(1),说add_sec是Time类的成员。当域运算符(::)前面什么也不加时,能起到屏蔽作用。如下面的程序,main中调用的::distance(...),意思是,不管其他地方有没有distance,这儿用的就我自己的。

http://blog.csdn.net/sxhelijian/article/details/44920915

0 0