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