为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是小编搜索整理的计算机二级C++练习题:改错题及答案,供参考练习,预祝考生们考出自己理想的成绩!
计算机二级C++练习题:改错题及答案
使用VC6打开考生文件夹下的工程kt8_1,此工程包含一个源程序文件kt8_,但该程序运行有问题,请改正程序中的错误,使程序的'输出结果如下:
f1functionofderive
f2functionofbase
f4functionofbase
源程序文件kt8_清单如下:
#include
classbase
{public:
/**********found**********/
voidf1(){cout<<"f1functionofbase"<<ENDL;}
virtualvoidf2(){cout<<"f2functionofbase"<<ENDL;}
virtualvoidf3(){cout<<"f3functionofbase"<<ENDL;}
voidf4(){cout<<"f4functionofbase"<<="">
/**********found**********/
classderive::publicbase
{voidf1(){cout<<"f1functionofderive"<<ENDL;}
voidf2(intx){cout<<"f2functionofderive"<<ENDL;}
voidf4(){cout<<"f4functionofderive"<<="">
voidmain()
{base*p;
deriveobj2;
/**********found**********/
p=obj2;
p->f1();
p->f2();
p->f4();}
【参考答案】
(1)将voidf1(){cout<<"f1functionofbase"<<ENDL;}
改为:virtualvoidf1(){cout<<"f1functionofbase"<<ENDL;}
(2)将classderive::publicbase
改为:classderive:publicbase
(3)将p=obj2;
改为:p=&obj2;
【试题解析】
(1)主要考查对虚函数的深刻理解,虚函数是动态联编的基础,也是实现多态性的重要方法,它可以根据不同的情况动态的选择执行哪一个函数。在派生类中实现虚函数应该满足与基类的同名函数完全相同,并且使用关键字virtual修饰,本题中由输出结果中的f1functionofderive可知,必须将基类base的成员函数f1()定义为虚函数;
(2)主要考查对派生类定义格式的掌握,应该使用“:”后面是继承列表,而“::”是作用域符;
(3)主要考查类对象的定义与使用,p是一个指针类型的变量,给它的赋值应该是一个地址,即使用取地址操作符&。