第7周项目2,没有做出来

来源:互联网 发布:mysql 模糊搜索 编辑:程序博客网 时间:2024/04/27 19:01
//例:使用成员函数、友元函数和一般函数的区别://利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数//三者在调用数据成员之间的方式上的区别//没有解决,无法想通为什么“cout<<p1.getx<<endl”输出的永远是1。#include <iostream>   #include<math.h>using namespace std;  class CPoint    {  private:    double x;    double y;     public:   CPoint(double xx,double yy):x(xx),y(yy){}   double distance(double x1,double y1);friend double distance2(CPoint &,double x1,double y1);double getx(){return x;}double gety(){return y;}};  double CPoint::distance(double x1,double y1){double dis;double a=x1-x;double b=y1-y;dis=a*a+b*b;dis=sqrt(dis);return dis;}void  distance1(CPoint &p){   // double dis=p.getx;   /* double a;a=x1-p.getx;//区别在此处,和在main中调用成员函数同样方式   double b;b=y1-p.gety;   dis=a*a+b*b;dis=sqrt(dis);*///return dis;cout<<p.getx<<endl;}double distance2(CPoint &p,double x1,double y1)//定义的方式{double dis;double a=x1-p.x;//区别在此处,和在main中调用公有数据成员同样方式double b=y1-p.y;dis=a*a+b*b;dis=sqrt(dis);return dis;}int main(){CPoint p1(10,10);cout<<"请输入一点的坐标"<<endl;double x,y;cin>>x>>y;cout<<p1.getx<<endl;//测试cout<<"两点间的距离为:"<<p1.distance(x,y)<<endl;   //distance1(p1);cout<<"两点间的距离为:"<<distance2(p1,x,y)<<endl;//调用的方式return 0;}

原创粉丝点击