问题 单项选择题

有以下程序:
#inClUde <iostream>
using namespace std;
Class Base

public:
Base(int x)

a=x;

void show()

cout<<a;

private:
int a;

class Derived : public Base

public:
Derived(int i) :Base(i+1),b(i)
void Show()

cout<<b;

private:
int b;

int main()

Base b(5),*pb;
Derived d(1);
pb=&d;
pb->show();
return 0;

运行后的输出结果是( )。

A.1

B.5

C.2

D.0

答案

参考答案:C

解析:

[分析]: 基类Base派生出派生类Derived,在主函数中,定义了基类对象b,基类指针pb,以及派生类对象d,并让基类指针pb指向派生类对象d。在C++中,当派生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句“pb->show();”是调用基类的成员函数show(),输出a的值2。

单项选择题
判断题