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

admin2021-02-22  41

问题 使用VC6打开考生文件夹下的源程序文件modi 1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
    TestClassl:0
    TestClass2
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在∥********error********的下面。
#include
Struct TestClassl
{
    TestClassl(int i=0)
    {
    m—i=i ;
    }
    void print()
    {
    cout<<“TestClassl:”<<    };
    int m—i;
};
C1ass TestClass2
{
public:
    TeStClasS2()
    {
    }
    void print()
    {
    cout<    };
  ∥********error********
private:
    一TestClasS2()
    {
    }
};
int main()
{
∥********error********
    TestClassl objl();
    ∥********error********
    TestClass2 obj 2(),
    obj 1.print();
    obj 2.print();
    return 0 ;
}

选项

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

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

最新回复(0)