有如下程序: #include<iostream> using namespace std; class AA{ public: AA(){cout<<’1’;} }; class BB:public

admin2017-04-25  41

问题 有如下程序:
    #include<iostream>
    using namespace std;
    class AA{
    public:
    AA(){cout<<’1’;}
    };
    class BB:public AA{
    int k:
    public:
    BB():k(0){cout<<’2’;}
    BB(int n):k(n){cout<<’3’;}
    };
    int main(){
    BB b(4),c;
    return 0;
    }
    运行时的输出结果是(    )。

选项 A、1312
B、132
C、32
D、1412

答案A

解析 在基类AA的默认构造函数中,输出字符‘1’,在继承类BB的默认构造函数中,输出字符‘2’,在带有参数n的构造函数中,输出字符‘3’。在主函数中,在创建BB的对象b(4)时,会首先调用基类AA的构造函数输出字符‘1’,再调用类BB带参数的构造函数输出字符‘3’。在创建BB的对象c时,会首先调用基类AA的构造函数输出字符‘1’,再调用类BB默认的构造函数输出字符‘2’。所以程序输出的结果为1312。
转载请注明原文地址:https://kaotiyun.com/show/1mAp777K
0

最新回复(0)