就业数据资源平台
当前位置:首页 > C++语言程序设计
2013年计算机二级考试C++模拟试题22

改错题 
  使用VC6打开考生文件夹下的工程kt8_1,此工程包含一个源程序文件kt8_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: 
  f1functionofderive 
  f2functionofbase 
  f4functionofbase 
  源程序文件kt8_1.cpp清单如下: 
  #include 
  classbase 
  { public: 
  /**********found**********/ 
  voidf1(){cout<<"f1functionofbase"< 
  virtualvoidf2(){cout<<"f2functionofbase"< 
  virtualvoidf3(){cout<<"f3functionofbase"< 
  voidf4(){cout<<"f4functionofbase"< 
  /**********found**********/ 
  classderive::publicbase 
  { voidf1(){cout<<"f1functionofderive"< 
  voidf2(intx){cout<<"f2functionofderive"< 
  voidf4(){cout<<"f4functionofderive"< 
  voidmain() 
  { base*p; 
  deriveobj2; 
  /**********found**********/ 
  p=obj2; 
  p->f1(); 
  p->f2(); 
  p->f4(); } 
  【参考答案】 
  (1)将void f1(){ cout<<"f1 function of base"< 
  改为:virtual void f1(){ cout<<"f1 function of base"< 
  (2)将class derive::public base 
  改为:class derive:public base 
  (3)将p=obj2; 
  改为:p=&obj2; 
  【试题解析】 
  (1)主要考查对虚函数的深刻理解,虚函数是动态联编的基础,也是实现多态性的重要方法,它可以根据不同的情况动态的选择执行哪一个函数。在派生类中实现虚函数应该满足与基类的同名函数完全相同,并且使用关键字virtual修饰,本题中由输出结果中的f1 function of derive可知,必须将基类base的成员函数f1()定义为虚函数; 
  (2)主要考查对派生类定义格式的掌握,应该使用“:”后面是继承列表,而“::”是作用域符;
  (3)主要考查类对象的定义与使用,p是一个指针类型的变量,给它的赋值应该是一个地址,即使用取地址操作符&。
就业数据资源平台