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