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

admin2017-07-05  23

问题 请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程中含有一个源程序文件projl.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
    Constructor called.
    The value is 10
    Max number is 20
    Destructor called.
    注意:只能修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。
//projl.cpp
#include<iostream>
USing namespace std;
class MyClass{
public:
//ERROR**********found*************
  void MyClass(int i)
  {value=i;cout<<”Constructor
called.”<<endl;}
  int Max(int X,int Y){return x>Y?
x:y;)//求两个整数的最大值
//ERROR**********found**********
  in=Max(int x,int Y,  nt Z=0)
//求三个整数的最大值
    {
    if(x>y)
    return X>Z?x:Z;
    else
    return y>Z?Y:z;
    }
    int GetValue()const{return value;}
    一MyClass(){cout<<”Destructor
called.”<<endl;)
Frivate:
  int value;
  };
  int main()
  {
  MyClass obj(10);
//ERROR**********found***********
  cout<<”The value is”<<value()
<<endl;
  cout<<”Max number is”<<obj.Max
(10,20)<<endl;
  return 0;
  }

选项

答案(1)MyClass(int i) (2)int Max(int x,int y,int Z) (3)cout<<"The value is"<
解析 (1)考查构造函数,构造函数前不加void或其他任何类型名,直接使用MyClass(int i)即可。
    (2)主要考查函数重载,在
    int Max(int x,int Y){return X>Y?x:y;}中两个形参变量都是int型,而语句int Max(int x,int y,int z=0)的前两个形参也都是int型,第三个形参定义默认值,那么这两个Max函数在调用时它们的参数个数和参数类型都一样,因为函数重载要求形参类型或形参个数不同,所以要把int z=0改为int z,才能构成函数重载。
    (3)主要考查成员函数的调用,因为value是私有成员,所以不能被类外函数直接调用,而且value()的用法也是错误的,可以使用成员函数obj.GetValue()得到value的值。
转载请注明原文地址:https://kaotiyun.com/show/8GAp777K
0

最新回复(0)