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