请打开考生文件夹下的解决方案文件proj1,此工程包含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR **** found ****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: (4,4) 注意:只

admin2020-06-29  28

问题 请打开考生文件夹下的解决方案文件proj1,此工程包含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR  **** found ****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
    (4,4)
    注意:只修改注释“//ERROR  ****found****”的下一行语句,不要改动程序中的其他内容。
    //proj 1.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 Nove(double xOff,double yOff)const
      {x+=xOff;  y+=yOff;}
    protected:
      double _x,_y;
    };
    int main()
    {
      Point pt(1.5,2.5);
      pt.Nove(2.5,1.5);
    //ERROR ******** found ********
    以下语句输出pt成员_x和_y的值
      cout  <<’(’<<pt._x  <<’,’<<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<<’(’<<pt.GetX()<<’,’<<pt.GetY()<<’)’<<endl;

解析 (1)主要考查的是构造函数的成员初始化列表的语法,在成员列表之前必须加“:”。
    (2)主要考查成员函数中const的使用,先看Move函数的函数体:{_x+=xOff;_y+=yOff;}
    可以看到Point类的两个私有成员_x和_y的值都发生了变化,因此Move函数不能使用const,因为只有在函数内不改变类的成员的值时才能使用const。
    (3)主要考查私有成员不能被类外函数调用的知识。题目要求输出pt成员_x和_y的值,从Point类中的函数double Getx()const{retum_x;}和doubleGetY()const{return_y;},可以分别得到_x和_y的值,因此这里使用语句cout<<’(’<<pt.Getx()<<’,’<<pt.GetY()<<’)’<<endl;调用成员函数GetX()和GetY()来实现题目要求。
转载请注明原文地址:https://kaotiyun.com/show/pO8p777K
0

随机试题
最新回复(0)