单选题 有如下程序:
#include<iostream>
using namespace std;
classA
public:
virtua1 voidfunc1()cout<<“A1”;
voidfunc2()cout<<“A2”;;
class B:publicA
public:
void funcl()cout<<“B1”;
void func2()cout<<“B2”;;
intmain()
A*p=new B;
p->funcl();
p->func2();
return 0;
执行该程序,屏幕上将显示输出( )。

【正确答案】 C
【答案解析】[解析] 程序中B为A的派生类,由主函数入手,主函数中定义了类A的指针p指向类B。根据基类中的“vir- tual void funcl()”知道A中的funcl为虚函数,执行“p->funcl();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的funcl函数,输出B1。而fun2不是虚函数,所以执行“p->rune2();”输出为A2。