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