第六周(友元函数)

来源:互联网 发布:java线程死锁 编辑:程序博客网 时间:2024/06/01 08:24

/*
*copyright(c) 2015,烟台大学计算机学院
*All rights reserved。
*文件名称:第六周(友元函数)

*作者:王忠
*完成日期:2015.4.14

*版本号:v1.0
*
*问题描述:别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计main()函数完成测试。

*输入描述:

*程序输出:

 

#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){}    //请继续写需要的代码    void distance1(CPoint p) const;    friend void distance2(CPoint &,CPoint &);    double getx() {return x;}    double gety() {return y;}}; void  CPoint::distance1(CPoint p) const{    double s;    s=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));    cout<<s<<endl;}void distance2(CPoint &p1,CPoint &p2){    double s;    s=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));    cout<<s<<endl;}void distance3(CPoint &p1,CPoint &p2)    {        double s;        s=sqrt((p1.getx()-p2.getx())*(p1.getx()-p2.getx())+(p1.gety()-p2.gety())*(p1.gety()-p2.gety()));        cout<<s<<endl;    }int main(){    CPoint c1(5,5),c2(10,6);    c1.distance1(c2);    distance2(c1,c2);    distance3(c1,c2);    return 0;}


 

这个项目在一开始做的时候,应用了以前的程序,但有点难以下手,不知道如何去定义一些函数,后来在写的过程中,一般函数写进了类里,还忘记了一般函数不能访问类里私有成员

0 0