问题
单项选择题
有如下程序:
#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。