填空题 以下程序的执行结果为  【8】  
  #include<iostream>
  using namespace std;
 class base
  
   public:
    virtual void who1
   
    cout < < "base class" < <end1;
   ;
   class derivel:public base
   
    public:
     void who2
    
     cout < <"derivel class" < <end1;
    ;
    }
    class derive2:public base
    
     public:
      void who3
     
      cout< <"derive2 class"< <end1;
     
    ;
    void main4
    
     base obj1,* p;
     derivel obi2;
     derive2 obj3;
     p=&obj1;
     p->who5
     p=&obj2;
     p->who6
     p=&obj3;
     p->who7


  • 1、
【正确答案】 1、{{*HTML*}}【8】base class
   derivel class
   derive2 class    
【答案解析】【命题目的】考查虚函数的用法。
【解题要点】类base含有虚函数who---|||________|||---,该类派生出derivel类和derive2类,两个派生类中都有虚函数who---|||________|||---的定义。在main---|||________|||---函数中定义了一个指向base类的指针,它也被允许指向其派生类。在执行过程中,不断改变它所指的对象,当p->who---|||________|||---时就能调用不同的版本。这是因为使用了虚函数,因而进行动态联编。
【考点链接】应掌握静态联编的使用方法。