问题及代码:
/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:崔青青
*完成日期:2016年4月8日
*版 本 号:v1.0
*问题描述:用类求两点间的距离,调用友元函数。
*输入描述:
*输出描述:
*/
#include<iostream>
using namespace std;
#include<cmath>
class CPoint
{
private:
double x1;
double x2;//横坐标
double y1;
double y2;//纵坐标
double distance;
public:
CPoint(double xx1,double yy1,double xx2,double yy2);
void Distance();
friend void showDistance(CPoint &);
};
CPoint::CPoint(double xx1,double yy1,double xx2,double yy2)
{
x1=xx1;
x2=xx2;
y1=yy1;
y2=yy2;
}
void CPoint::Distance()
{
double sum;
sum=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);
distance=sqrt(sum);
}
void showDistance(CPoint &p)
{
cout<<"两点之间的距离为:"<<p.distance<<endl;
}
int main()
{
CPoint p(0,0,3,4);
p.Distance();
showDistance(p);
return 0;
}
运行结果:
知识点总结:
这个程序调用友元函数求两点之间的距离,跟一般函数和成员函数作比较。
学习心得:
应该注意在调用友元函数时的规则。