请使用菜单命令或直接使用VC6打开考生文件夹下的工程projl。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:两点之间的距离为:7.5231 注:

admin2016-06-12  30

问题 请使用菜单命令或直接使用VC6打开考生文件夹下的工程projl。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:两点之间的距离为:7.5231
注:意:只能修改每个//ERROR**********found**********下的那一行,不要改动程序中的其他内容。
#include
#include
using namespace std;
class Point{
private:
double x,y,
public:
  Point(double xx,double YY)(
x=xx;
y=yy;
}
//ERROR**********found**********
double MyDistance(Point&a,Point&b);
},
double MyDistance(Point&a,Point&b){
//ERROR**********found**********
double dx:x—b.x;
//ERROR **********found**********
double dy=a.y—y;
return sqrt(dx*dx+dy*dy);
}
int main()
{
  Point p1(3.6,6.4),p2(8,0.3);
  double d=MyDistance(pl,p2);
  cout<<“两点之间的距离为:”<endl;
return 0;
}

选项

答案(1)friend double MyDistance(Point&a,Point&b); (2)double dx=a.x—b.x; (3)double dy=a.y—b.y;

解析 本题考查Point类,其中涉及友元函数,成员变量的访问。
【解题思路】
(1)主要考查考生对友元函数的掌握,由于MyDistance函数在类定义体外定义时,未加类名Point修饰作用域,可知MyDistance并不是类Point的成员函数,但是声明是在Point定义体内部,所以应该是友元函数,另外函数MyDistance可以直接操作Point对象的成员变量,所以进一步确定是友元函数,使用friend关键字修饰。
(2)主要考查考生对友元函数的掌握和成员变量的访问,在函数MyDistance中,为了计算a、b两点的距离,需要计算两个点的横纵坐标差值,所以需要访问a、b的横纵坐标,将a的横坐标减去b的横坐标,得到差值dx,再计算dy。
(3)主要考查考生对友元函数的掌握和成员变量的访问,在函数MyDistance中,为了计算a、b两点的距离,需要计算两个点的横纵坐标差值,所以需要访问a、b的横纵坐标,将a的纵坐标减去b的纵坐标,得到差值dy,再与dx一起计算距离。
转载请注明原文地址:https://kaotiyun.com/show/CiNp777K
0

最新回复(0)