问题 单项选择题

如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制:
#include <iostream>
using namespace std;
class Base
int a,b;
public:
Base(int x,inty)a=x;b=y;
void show( )cout<<a<<’,’<<b<<endl;

class Derived:public Base
int C,d;
public:
Derived(int x,int y,int z,intm):Base(x,y)c=z;d=m;
void show( )cout<<c<<’,’<<d<<endl;

int main( )
Base BI(50,50),*pb;
Derived D1(10,20,30,40);
pb=&D1;
pb->show( );
return 0;

程序的输出结果是

A.10,20

B.30,40

C.20,30

D.50,50

答案

参考答案:A

解析: pb作为基类指针,可以指向派生类对象,但是它只能访问基类的成员函数,而不能访问派生类的成员函数,所以pb->show( );访问的是基类的show( )函数,故打印10,20。

单项选择题
单项选择题 案例分析题