问题 填空题

以下程序的执行结果为  【8】  
  #include<iostream>
  using namespace std;
 class base
  
   public:
    virtual void who( )
   
    cout < < "base class" < <end1;
   ;
   class derivel:public base
   
    public:
     void who( )
    
     cout < <"derivel class" < <end1;
    ;
    }
    class derive2:public base
    
     public:
      void who( )
     
      cout< <"derive2 class"< <end1;
     
    ;
    void main( )
    
     base obj1,* p;
     derivel obi2;
     derive2 obj3;
     p=&obj1;
     p->who( );
     p=&obj2;
     p->who( );
     p=&obj3;
     p->who( );

答案

参考答案:【8】base class
   derivel class
   derive2 class

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

多项选择题 案例分析题
问答题 简答题