有如下程序: #include<iostream> using namespace std; class B{ public: B(int xx):x(xx){++count;x+=10;} virtual void show() const {cout<

admin2018-12-04  28

问题 有如下程序:
#include<iostream>
using namespace std;
class B{
public:
B(int xx):x(xx){++count;x+=10;}
virtual void show() const
{cout<<count<<’_’<<x<<endl;}
protected:
static int count;
private:
int 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<<endl;}
private:
int y;
};
int B::count=0;
int main(){
B *ptr=new D(10,20);
ptr->show();
delete ptr;
return 0;
}
运行时的输出结果是(    )。

选项 A、1120
B、2120.
C、l20
D、220

答案B

解析 在主函数中定义了一个基类B的指针变量ptr,并调用类D的构造函数创建了类D的实例对象,因为变量count是全局变量所以在调用基类B的构造函数给其值加1,在调用D的构造函数时给其值加1,因而输出其值等于2,在类D的构造函数中给成员变量y的值加100,所以其等于120并输出。
转载请注明原文地址:https://jikaoti.com/ti/MVt0FFFM
0

最新回复(0)