问题 单项选择题

有以下程序:
#include <iostream>
#include <math>
using namespace std;
class point

private:
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));

int main ( )

point pl(1,2);
point p2 (5, 2);
cout<<distance (pl,p2) <<end1;
return 0;

程序运行后的输出结果是( )。

A.1

B.5

C.4

D.6

答案

参考答案:C

解析: 本题考核友元函数的应用。分析程序:
①类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两点之间的距离。
③在主函数中,先定义两点:p1(1,2)和p2(5,2)。然后调用函数distance()计算两点之间的距离为4,所以程序最后输出为4。

单项选择题
单项选择题 案例分析题