单选题
有如下程序: #inc1ude <iostream> using namespace std; c1ass B{ public: B(int xx):x(xx){++count;x+=10;} virtual void show()const {cout<<count<'_'<x<<end1;} protected: static int count; private: intx; }; c1ass D:public B{ public: D(int xx,int yy):B(xx),y(yy){++count;y+=100;} virtual void show()const { cout<<count<<'.'<<y<<end1;) private: int y; }; int B::count =0; int main(){ B *ptr=new D(10,20); ptr—>show0; delete ptr; retum 0; } 运行时的输出结果是( )。
【正确答案】
B
【答案解析】解析:在主函数中定义了一个基类B的指针变量ptr,并调用类D的构造函数创建了类D的实例对象,因为变量count是全局变量所以在调用基类B的构造函数给其值加1,在调用D的构造函数时给其值加1,因而输出其值等于2,在类D的构造函数中给成员变量y的值加100,所以其等于120并输出。