有如下程序; #include <iostream> using namespace std; class Base { public; Base(inti){x=i;} void dispa0{c

admin2012-01-20  61

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

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

答案B

解析 "Derived b(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://jikaoti.com/ti/3SL0FFFM
0

最新回复(0)