问答题 使用VC6打开 下的源程序文件modi1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
TestClass1:0
TestClass2
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
#include<iostream.h>
Struct TeStClasS1
{
TeStClass1(int i=0)
{
m_i=i;
}
void print()
{
cout "TestClass1: " m_i endl;
};
int m_i;
};
class TestClass2
{
public:
TestClass2 ()
{
}
void print()
{
cout "TestClass2 "
【正确答案】
【答案解析】(1)public:
(2)TestClass1 obj1(0);或TestClass1 obj1;
(3)TestClass2 obj2;
答案考生文件夹 [解析] 程序要求输出TestClass1:0和TestClass2。从已定源程序的main主函数开始入手,可以看出程序首先定义TestClass1和TestClass2类型的变量,然后通过调用其中的print成员函数实现输出结果。
(1)第1个标识下的“private: ~TestClass2()”是析构函数,它不是私有的,所以这里应该为“删除private:或修改为public:”。
(2)第2个标识下的“TestClass1 obj1();”语句是定义一个TestClass1类型的对象obj1(),根据类TestClass1构造函数的定义“TestClass1(int i=0)”,知道存在整型参数,应该补充参数,或者只是先定义一个对象名,然后在使用时补充参数,即修改为“TestClass1 obj1(0);或TestClass1 obj1;”。
(3)同理第3个标识下的“TestClass2 obj2();”语句修改为“TestClass2 obj2;”。