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

admin2018-10-23  14

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为:
    init TestClass
    del TestClass
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1  #include<iostream.h>
2  class TestClass
3  {
4    //********error********
5
6   //********error********
7    int TestClass(){cout<<’’initTestClass’’<<end1;);
8    //********error********
9    void~TestClass(){cout<<’’delTestelass’’<<end1;};
10  };
11  void main()
12  {
13    TestClass obj;
14    return;
15  }

选项

答案(1)添加语句:public: (2)TestClass(){cout<<’’init TestClass’’<<end1;}; (3)~TestClass(){cout<<’’de1 TestClass’’<<end1;};

解析 本题的功能是分别利用构造函数和析构函数中的输出语句,输出“init TestClass”和“delTestClass”字符串。从已定源程序的main主函数开始入手,可以看出程序首先通过类TestClass中的TestClass构造函数实现各种输出。
    (1)打开modi1.cpp,调试程序,显示错误提示为第一标识下“modi1.cpp(13):errorC2248:’TestClass::TestClass’:cannot access privatemember declared in class ’TestClass’”,构造函数由于是私有的,无法获得,所以应该定义为public型,即第1个标识下添加“public:”。
    (2)构造函数首部的一般形式为:构造函数名(形参列表),构造函数没有返回值,所以定义构造函数时不需要声明类型,所以“int TestClass(){cout<<’’ini tTestClass’’<<  end1;}:" 语句修改为“TestClass(){cout<<’’init TestClass’’<<end1;}:”。
    (3)析构函数的名字是类名的前面加一个“~”符号,所以“void~TestClass(){cout<<’’delTestClass’’<<end1;};”修改为“~TestClass(){cout<<’’delTestClass"<<end1;}”。
转载请注明原文地址:https://jikaoti.com/ti/pct0FFFM
0

最新回复(0)