有如下程序: #inc1ude <iostream> using namespace std; c1ass Base{ public: Base(int x==0):valB(x){cout<<va1B,}

admin2020-11-11  16

问题 有如下程序:
    #inc1ude <iostream>
    using namespace std;
    c1ass Base{
    public:
    Base(int x==0):valB(x){cout<<va1B,}
    ~Base(){cout<<valB,)
    private:
    int vaIB;
    };
    c1ass Derived:public Base{
    public:
    Derived(int x=0,int y=0):Base(x),vaID(y){cout<<va1D,}
    ~Derived0 {cout<<valD;}
    private:
    int vaID;
    };
    int main(){
    Derived obj12(2,3);
    retum0;
    }
    运行时的输出结果是(    )。

选项 A、2332
B、2323
C、3232
D、3223

答案A

解析 在主函数中创建类Derived对象obj12(2,3)时,因为类Derived是从基类Base派生而来,所以首先调用基类的构造函数,输出2,再调用派生类构造函数,输出3。当主函数运算结果时,首先调用派生类的析构函数,输出3,再调用基类的析构函数输出2.所以输出结果为2332。
转载请注明原文地址:https://jikaoti.com/ti/P4l0FFFM
0

最新回复(0)