问题 问答题

改错题使用VC6打开考生文件夹下的工程test8_1,此工程包含一个源程序文件test8_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:f1 function of derivef2 function of basef4 function of base源程序文件test8_1.cpp清单如下:#includeclass base{public:/**********found**********/ void f1(){ cout<<"f1 function of base"<f1(); p->f2(); p->f4();}

答案

参考答案:(1)错误:void f1(){ cout<<"f1 function of base"<

解析:(1)主要考查考生对于虚函数的深刻理解,虚函数是动态联编的基础,也是实现多态性的重要方法,它可以根据不同的情况动态的选择执行哪一个函数。在派生类中实现虚函数应该满足与基类的同名函数完全相同,并且使用关键字virtual修饰,本题中由输出结果中的f1 function of derive可知,必须将基类base的成员函数f1()定义为虚函数;(2)主要考查考生对派生类定义格式的掌握,应该使用":"后面是继承列表,而"::"是作用域符;(3)主要考查点为类对象的定义与使用,p是一个指针类型的变量,给它的赋值应该是一个地址,即使用取地址操作符&。