使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: 1 1 2 1 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构

admin2019-05-14  35

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为:
    1
    1
    2
    1
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1  #include<iostream.h>
2  class TestClass
3  {
4    //********error********
5
6    //********error********
7    const int j;
8  public:
9   TestClass()
10    {
11    //********error********
12    static int i=0;
13    cout<<++i<<end1;
14    cout<<j<<end1;
15    }
16  };
17  void main()
18  {
19    TestClass obj1;
20    TestClass obj2;
21    obj2.j+=obj1.j;
22    return;
23  }

选项

答案(1)添加语句:public: (2)int j; (3)添加语句:j=1;

解析 本题程序的功能是输出1 1 2 1。解题思路从己定源程序的main主函数开始入手,程序通过类TestClass中成员函数实现题目中要求的输出。
     (1)打开modi1.cpp,调试程序,显示错误提示为“modi1.cpp(22):error C224.8:’j’:cannotaccess private member declared in class ’TestClass’”,第1个标识下的i变量由于被定义为私有的,其他函数不可获得,这里应该是public型,所以在第1个标识下添加“public:”。
    (2)程序中对于j的调用,说明j并不是常量,所以修改i的定义,将其定义为变量,而不是常变量,即修改第2个标识下语句为“int j;”。
    (3)题目中要求调用对象,输出i的值为1。原程序中i变量的使用并没有赋初始化值,输出值为乱码,所以第三个标识下添加“j=1;”。
转载请注明原文地址:https://jikaoti.com/ti/vrA0FFFM
0

最新回复(0)