问题 填空题

有以下程序:
#include <iostream>
using namespace std;
class Base

private:
int a,b;
public:
Base(int x, int y)

a=x;
b=y;

void Show()

cout<<a<< ’,’ <<b<<end1;

;
class Derived : public Base

private:
int c;
public:
Derived(int x, int y, int z) : Base(x,y),c(z)
void Show()

cout<<c<<end1;

;
int main()

Base b(50,50),*pb;
Derived d(10,20,30);
pb=&d;
pb->Show();
return 0;

运行后的打印结果为 【14】

答案

参考答案:A0,B0

解析: 本题考核基类指针的使用。本题首先定义了一个基类Base和一个由Base派生出来的派生类Derive。在主函数中,定义了一个基类Base指针pb和基类对象b,还定义了派生类Derive的对象d。然后将派生类对象d的地址赋值给指向基类Base的指针pb。由于Derive是Base的子类型,因此允许上述赋值。但这时指针pb只能使用从基类Base继承的成员,即当pb指向d对象时,pb->show还是调用基类Base的成员函数show()。所以程序最后输出的对象d中对基类成员的初始化值,即10,20。

问答题
单项选择题