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

admin2010-05-15  27

问题 有如下程序:    #include    using name space std;    classB{    public:    B(int xx):x(xx){++count;x+=10;}    virtual void show()const    {cout<<count<<’_’<<x<<endl;}    protected:    static int count;    private:    intx;    };    class D:publicB{    public:    D(int xx,int yy):B(xx),y(yy){++count;y+=100;}    virtual void show()const    {cout<<count<<’_’<<y<endl};    pnvate:    inty;    };    int B::count=0;    intmain(){    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

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

最新回复(0)