填空题 以下程序的执行结果为 1。   #include<iostream>   using namespace std;   class base   {    public:     virtual void who2    {     cout < < "base class" < <end1;    };    class derivel:public base    {     public:      void who3     {      cout < <"derivel class" < <end1;     };     }    class derive2:public base     {      public:       void who4      {       cout< <"derive2 class"< <end1;      }     };     void main5     {      base obj1,* p;      derivel obi2;      derive2 obj3;      p=&obj1;      p->who6;      p=&obj2;      p->who7;      p=&obj3;      p->who8;     }
  • 1、
【正确答案】 1、base class derivel class derive2 class    
【答案解析】本题考查虚函数的用法。类base含有虚函数who---|||________|||---,该类派生出derivel类和derive2类,两个派生类中都有虚函数who---|||________|||---的定义。在main---|||________|||---函数中定义了一个指向base类的指针,它也被允许指向其派生类。在执行过程中,不断改变它所指的对象,当p->who---|||________|||---时就能调用不同的版本。这是因为使用了虚函数,因而进行动态联编。