请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1。其中有线段类Line的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=

admin2016-08-19  31

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1。其中有线段类Line的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
    End point 1=(1,8),End point 2=(5,2),length=7.211 1。
    注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
1  #include
2  #include
3  using namespace std;
4  class Line;
5  double length(Line);
6  class Line { //线段类
7  double x1 ,y,1;//线段端点1
8  double x2,y2;//线段端点2
9  public:
10    //ERROR  **********found**********
11  Line(double x1,double y1,doublex2,double y2)const{
12  this->x1:x1;
13  this->y1=y1;
14  this->x2=x2;
15  this->y2=y2;
16    }
17   double getXl()const{return x1l;}
18   double getYl()const{return y1;}
19   double getX2()const { return x2 }
20  double getY2()const { return y2;}
21    void show()const {
22    cout<<"End point 1=("<23    cout<<"),End point 2=("<24    //ERROR  **********found**********
25    cout<<"),length="<26  <<"。"<27    }
28  };
29 double length(Line 1){
30    //ERROR  **********found**********
31    return sqrt((1.x1-1.x2)*(1.x1-1.x2)+(1.y1-1.y2)*(1.y1-1.y2));
32  }
33
34  int main(){
35 Line r1(1.0,8.0,5.0,2.0);
36    r1.show();
37    return 0;
38  }

选项

答案(1)Line(double x1,double y1,double x2,double y2){ (2)cout<<”),length =“<
解析 (1)主要考查考生对构造函数的掌握,构造函数要给私有成员赋初始值,因此不能使用const来限制。
    (2)主要考查考生对this指针的掌握,由函数length的声明double length(Line);可知,length函数的形参是Line类,在void show()const函数里,this指针指向的是当前Line类,因此可以用*this表示当前Line类。
    (3)主要考查考生对成员函数的掌握,length函数是类外函数,不能直接调用类的私有成员,因此要通过成员函数取得对应的值。
转载请注明原文地址:https://kaotiyun.com/show/bZNp777K
0

最新回复(0)