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