请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程pmjl,此工程包含有一个源程序文件projl.cpp。其中位于每个注释“//ERROR **** found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: (4,4)

admin2019-05-14  16

问题 请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程pmjl,此工程包含有一个源程序文件projl.cpp。其中位于每个注释“//ERROR **** found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
(4,4)
注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
//projl.cpp
#include
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,double
yOff)const
  {x+=xOff;_y+=yOff;)
protected:
  doublex;y;
  };
  int main()
  {
  Point pt(1.5,2.5);
  pt.Move(2.5,1.5);
//ERROR*********found********* 以下语句输出pt成员x和y的值
cout<<‘(’<  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<<’(’<
解析 本题主要考查Point类,其中涉及构造函数、成员函数及成员函数的调用。构造函数的语法经常考查到,一般会考查形参的类型及名称,本题考查的比较特别,是考查函数成员初始化列表的基本知识。
【解题思路】
(1)主要考查的是构造函数的成员初始化列表的语法,在成员列表之前必须加“:”。
(2)主要考查成员函数中const的使用,先看Move函数的函数体:
{_x+=xOff;—y+=yOff;}
可以看到Point类的两个私有成员一x和一y的值都发生了变化,因此Move函数不能使用eonst,因为只有在函数内不改变类的成员的值时才能使用const。
(3)主要考查私有成员不能被类外函数调用的知识。题目要求输出pt成员.x和-y的值,从Point类中的函数doubleGetX()const{return-x;}和double GetY()eonst{return—y;},可以分别得到一x和一y的值,因此这里使用语句cout<<‘(’<【解题宝典】eonst用于限定变量的值不发生改变,涉及eonst函数时,就要先看函数体内部成员的值是否改变,如果改变了就会出现错误。当题目要求输出类的私有成员的值时,首先头脑中就要有一个概念:类外函数不能调用私有成员,只能通过成员函数调用。
转载请注明原文地址:https://kaotiyun.com/show/lE8p777K
0

最新回复(0)