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

admin2018-10-23  20

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
    TestClass2
    TestClass3
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1  #include<iostream>
2  class TestClassl
3  {
4  public:
5    virtual void fun()=0;
6  };
7  class TestClass2:public TestClass1
8  {
9    //********error********
10    int fun()
11    {
12    using namespace std;
13    cout<<’’TestClass2’’<<end1;
14    }
15  };
16  class TestClass3:public TestClass1
17   {
18    //********error********
19    void fun()
20    {
21    //********error********
22    cout<<’’TestClass3’’<<end1;
23    }
24  };
25  void main()
26  {
27    TestClass1* p;
28    TestClass2 obj1;
29    Testclass3  obj2;
30    p=&obj1;
31    p一>fun();
32    obj2.fun();
33   return;
34  }

选项

答案(1)void fun() (2)添加语句:public; (3)std::cout<<’’TestClass3’’<<std::end1;或者添加using namespace std;

解析 本题程序中的功能为输出字符串TestClass2和TestClass3。从已定源程序的main主函数开始入手,可以看出程序通过定义类的对象,利用类中定义的成员函数完成题目中要求的输出。
    (1)fun()函数是没有返回值的,而第1个标识下的“int fun()”语句中定义的fun()函数是有int型返回值的,所以将其修改为“void fun()”。
    (2)第2个标识下的fun()函数,没有被定义为public型,所以外部其他成员无法访问,只能是类本身访问,所以添加“public:”。
    (3)在程序中用到C++标准库时,要使用std标准命名空间进行限定。第三个标识下cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即为“std::cout TestClass3”<<std::end1;”或者添加“using namespace std;”。
转载请注明原文地址:https://kaotiyun.com/show/4wAp777K
0

最新回复(0)