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

admin2016-09-20  23

问题 请使用菜单命令或直接使用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 vfound**********
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(p1,p2);
    cout<<“两点之间的距离为:”<return 0;
}

选项

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

解析 (1)主要考查考生对友元函数的掌握,由于MyDis-tance函数在类定义体外定义时,未加类名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/kpNp777K
0

最新回复(0)