问答题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程包含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: (4,4) 注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。//proj1.cpp#include<iostream>using namespace std;class Point{ ,public://ERROR**********found**********Point(double X,double Y)_X(x),_y(Y){} double GetX()const{return X;) double GetY()const{return_y;)//ERROR********found******** void Move (double xOff,doubleyOff)const { x+=xOff; y+=yOff;)protected: double x,y;};int main(){ Point pt(1.5,2.5); pt.Move(2.5,1.5);//ERROR********found******** 以下语句输出pt成一X和_y的值 cout<<’(’<<pt.』 <<’,’<<pt._y<<’)’<<endl; return 0; }
【正确答案】正确答案:(1)Point(double X,double Y):_X(X),_Y(Y){}或Point(double X,double Y){_x=x;_y=y;} (2)void Move(double xOff,double yOff) (3)cout<<’(’<
【答案解析】解析:(1)主要考查的是构造函数的成员初始化列表的语法,在成员列表之前必须加“:”。 (2)主要考查成员函数中const的使用,先看Move函数的函数体: {_x+=xOff;_y+=yOff;} 可以看到Point类的两个私有成员_x和_y的值都发生了变化,因此Move函数不能使用const,因为只有在函数内不改变类的成员的值时才能使用const。 (3)主要考查私有成员不能被类外函数调用的知识。题目要求输出pt成员_X和_Y的值,从Point类中的函数doubleGetX()const{retum_x;}和double GetY()const{return_Y;},可以分别得到_x和_y的值,因此这里使用语句cout<<’(’<