/*
*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;
}
这个项目在一开始做的时候,应用了以前的程序,但有点难以下手,不知道如何去定义一些函数,后来在写的过程中,一般函数写进了类里,还忘记了一般函数不能访问类里私有成员
原文:http://blog.csdn.net/wangzhongwangmin/article/details/45040311