问题 单项选择题

有如下程序:

#include

using name space std;

classB

public:

B(int xx):x(xx)++count;x+=10;

virtual void show()const

cout<<count<<’_’<<x<<endl;

protected:

static int count;

private:

intx;

class D:publicB

public:

D(int xx,int yy):B(xx),y(yy)++count;y+=100;

virtual void show()const

cout<<count<<’_’<<y<endl;

pnvate:

inty;

int B::count=0;

intmain()

B*ptr=new D(10,20);

ptr->show();

delete ptr;

return 0;

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

A.1_120

B.2_120

C.1_20

D.2_20

答案

参考答案:B

解析:

本题考查了类的继承。继承有三种方式,public公有、pnvate私有和protected保护,本题都涉及到了。本题中类D公有继承类B。在类B中又定义了虚函数,并且有保护类静态类型count及私有变量x。主函数中调用类D,类D又继承了类B,经过系统及调用,本题最终结果为2120。

选择题
单项选择题