问答题
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为: TestClass2 TestClass3 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。#include<iostream>Class TestClass1{public: virtual void fun()=0;};class TestClass2:public TestClass1{ //********error******** int fun() { using namespace std; cout<<"TestClass2"<<end1; } }; class TestClass3:public TestClass1 { //********error******** void fun() { //********error******** cout<<"TestClass3"<<end1; } }; void main() { TestClass1* p; TestClass2 obj1; TestClass3 obj2; p=&obj1; p->fun(); obj2.fun(); return;}
【正确答案】正确答案:(1)void fun() (2)添加语句:public: (3)std::cout<<"TestClass3 "<
【答案解析】解析:(1)fun()函数是没有返回值的,而第1个标识下的“int fun()”语句中定义的funO函数是有int型返回值的,所以将其修改为“void fun()”。 (2)第2个标识下的fun()函数,没有被定义为public型,所以外部其他成员无法访问,只能是类本身访问,所以添加“public:”。 (3)在程序中用到C++标准库时,要使用std标准命名空间进行限定。第三个标识下cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即为“std::cout<<”TestClass3”<