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

admin2020-06-29  25

问题 有如下程序:
#include
    using namespace std;
    class Base
    {
    public:
    Base(int i){x=i;)
    void dispa(){cout<    private:
    int x;
    };
    class Derived:public Base
    {
    public:
    Derived(int i):Base(i+l0){x=i;)
    void dispb(){dispa();cout<    private:
    int x:
    };
    int main()
    {
    Derived b(2);
    b.dispb0;
    retum 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/1MA0FFFM
0

最新回复(0)