有如下程序: #include using namespace std; class Base { public: Base(int i){x=i;} void dispa(){cout

admin2012-12-29  24

问题 有如下程序:
    #include
    using namespace std;
    class Base
    {
    public:
       Base(int i){x=i;}
       void dispa(){cout<    private:
       intx;
    };    、
    class Derived:public Base
    {
    public:
    Derived(int i):Base(i+10){x=i;}
    void dispb(){dispa();cout<    private:
       int x;
    };
    int main()
    {
       Derived b(2);
       b.dispb();
       return();
    }
    运行的结果是(  )。

选项 A、2,2
B、12,2
C、12,10
D、10,2

答案B

解析 “Derivedb(2);”以整数2实例化变量b,在执行Derived的构造函数时,以i+10即12去调用类Derived的父类的构造函数,将Base::x初始化为12,然后将Derived::x赋值为2。在执行b.dispb()时,先调用父类中的dispa,输出Base::x,即12,再输出Derived::x,即2,所以运行结果为“12,2”。
转载请注明原文地址:https://kaotiyun.com/show/yuVp777K
0

最新回复(0)