问题 单项选择题

有如下程序:
#include <iostream>
using namespace std:
class A
public:
virtual void funcl( )cout<<"A1";
void func2( )cout<<"A2";

class B:public A
public:
void funcl( )cout<<"B1";
void fllnc2( )cout<<"B2";

int main( )
A*p=new B;
p->funcl( );
p->func2( );
return 0:

运行程序,屏幕上将显示输出

A.B182

B.A1A2

C.BlA2

D.AlB2

答案

参考答案:B

解析: 基类指针可以指向派生类对象,但是指针只能访问继承自基类的成员,而不能访问派生类中的新增加成员或重新定义后的成员。故p->funcl( );p->func2( );都执行基类的成员函数,打印A1A2。

选择题
名词解释