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

admin2019-04-18  24

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程包含一个源程序文件proj1.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:You are fight.
    注意:只修改注释“//ERROR  ****found****”的下一行语句,不要改动程序中的其他内容。
1    //proj 1.cpp
2    #include
3   using namespace std;
4    class MyClass
5   {
6    public:   
7   MyClasS(int x):number(x){}
8   //ERROR    **********found**********
9  ~MyClasS(int X){}
10    //ERROR    **********found**********
11   void Judge(MyClasS&obj);
12    private:
13   int number;
14    };
15    void Judge(MyClasS&obj)
16    {
17   if(obj.number==10)
18    cout<<"You are right."<19  else
20    cout<<"Sorry"<21  }
22  int main()
23    f
24    //ERROR    **********found**********
25    MyClass object;
26    Judge(object);
27    return 0;
28    }

选项

答案(1)~MyClass(){} (2)friend void Judge(MyClass&obj); (3)MvClass 0 biect(10);

解析 (1)主要考查考生对析构函数的掌握,析构函数是没有形参的,因此把形参去掉即可,因为该类没有动态分配空间,所以不需要使用delete语句释放空间。
    (2)主要考查考生对友元函数的掌握,在函数定义中有语句void Judge(MyClass&obj),在main函数中有语句Judge(object);,即Judge函数是可以被类外函数调用的,并且定义时没有加上类名和作用域,因此可以知道Judge函数是友元函数,需要在类型前加上friend。
    (3)主要考查考生对构造函数调用的掌握,题目要求输出结果为:You are fight.,在Judge函数体内有语句:
    1  if(obj.number==i0)
    2    cout<<"You are right."<    要想使屏幕输出语句:You are fight.,就必须使obj.number的值为10,因此要使用构造函数语句MyClass object(10);。
转载请注明原文地址:https://kaotiyun.com/show/9pAp777K
0

最新回复(0)