使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: TestClassl:0 TestClass2 注意:不要改动main函数,不能增行或删行,也不能更改程序

admin2020-06-29  31

问题 使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
    TestClassl:0
    TestClass2
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
    1    #include
    2    struct TestClassl
    3    {
    4   TestClassl(int i=0)
    5    {
    6    m i=i;
    7    }
    8    void print()
    9    {
    10    cout<<"TestClassl:"<    11    };
    12    int m_i ;
    13    };
    14   Class TestClass2
    15    {
    16   public:
    17   TestClass2()
    18    {
    19    }
    20    void print()
    21    {
    22    cout<<"TestClass2"<    23    };
    24    //********error********
    25    private:
    26    ~TeStClass2()
    27    {
    28    }
    29    };
    30   int main()
    31   {
    32    //********error********
    33   TestClassl obj 1();
    34    //********error********
    35   TestClass2 obj 2();
    36    obj 1.print();
    37    obj 2.print();
    38    return 0 ;
    39  }

选项

答案(1)public: (2)TestClassl obj 1(0);或TestClassl obj1; (3)TestClass2 obj2;

解析 程序要求输出TestClass1:0和TestClass2。从已定源程序的main主函数开始入手,可以看出程序首先定义TestClass1和TestClass2类型的变量,然后通过调用其中的print成员函数实现输出结果。
    [解题思路]
    (1)第1个标识下的“private:  ~TestClass2()”是析构函数,它不是私有的,所以这里应该为“删除private:或修改为public:”。
    (2)第2个标识下的“TestClassl objl0;”语句是定义一个TestClass1类型的对象objl(),根据类TestClassl构造函数的定义“TestClassl(int i=0)”,知道存在整型参数,应该补充参数,或者只是先定义一个对象名,然后在使用时补充参数,即修改为“TestClassl objl(0);或TestClassl objl;”。
    (3)同理第3个标识下的“TestClass2 obj20;”语句修改为“TestClass2 obj2;”。
转载请注明原文地址:https://jikaoti.com/ti/eRA0FFFM
0

最新回复(0)