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

admin2019-06-04  80

问题 有如下程序:
    #include
    using namespace std;
    class B{
    public:
      B(int xx):x(xx){++count;x+=10;}
      virtual void show()const
        {cout<    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<    private:
      int y;
    };
    int B∷count=0;
    int main(){
        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

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

相关试题推荐
最新回复(0)