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

admin2021-02-22  16

问题 有如下程序:
  #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

解析 本题考查了类的继承。继承有3种方式,public公有、private私有和protected保护,本题都涉及了。本题中类D公有继承类B。在类B中又定义了虚函数,并且有保护类静态类型count及私有变量x。主函数中调用类D,类D又继承了类B,经过系统及调用,本题最终结果为2—120。
转载请注明原文地址:https://kaotiyun.com/show/g7yp777K
0

最新回复(0)