填空题
下面程序的输出结果是{{U}} 【15】 {{/U}}。
#include <iostream.h>
#include <math.h>
class point
{
double x;
double y;
public:
point(double a, double b)
{
x=a;
y=b;
}
friend double distance(point a, point b) ;
};
double distance(point a, point b)
{
return sqrt ((a. x-b.x) * (a. x-b.x)+ (a. y-b. y) * (a. y-b. y) );
}
void main()
{
point p1(1,2);
point p2(5,2);
cout<<distance(p1,p2)<<end1;
}
【正确答案】
1、4
【答案解析】[解析] 本题考核友元函数的应用。分析程序:类point中定义了两个私有成员x和y,以及一个友元函数distance。从而,函数 distance可以访问类point中的任何成员。在函数 distance中,返回值为sqrt((a. x-b. x)*(a. x-b. x)+ (a. y-b. y)*(a. y-b. y))。由此可知,函数distance的功能是计算a、b两点之间的距离。在土函数main中,先定义两点:p1(1,2)和p2(5,1)。然后调用函数distance计算两点之间的距离为4,所以程序最后输出为4。