问答题 使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: TestClass1:0 TestClass2 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。#include<iostream.h>struct TestClass1{ TestClass1(int i=0) { m_i=i; } void print() { cout<<"TestClass1:"<<m_i<<end1; }; int m_i;};Class TestClass2{public: TestClasS2() { } void print() { cout<<”TestClass2”<<end1; }; //********error********private: ~TestClass2() { }};int main(){ //********error******** TestClass1 obj1(); //********error******** TestClass2 obj 2(); obj1.print(); obj2.print(); return 0;}
【正确答案】正确答案:(1)public: (2)TestClass1 obj1(0);或TestClass1 obj1; (3)TestClass2 obj2;
【答案解析】解析:(1)第1个标识下的“private: ~TestClass2()”是析构函数,它不是私有的,所以这里应该为“删除private:或修改为public:”。 (2)第2个标识下的“TestClass1 obj1();”语句是定义一个TestClass1类型的对象obj10,根据类TestClass1构造函数的定义“TestClass1(int i=0)”,知道存在整型参数,应该补充参数,或者只是先定义一个对象名,然后在使用时补充参数,即修改为“TestClass1 obj1(0);或TestClass1 obj1;”。 (3)同理第3个标识下的“TestClass2 obj20;”语句修改为“TestClass2 obj2;”。