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

admin2016-11-23  27

问题 有如下程序:
    ##inc1ude <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的默认构造函数中,输出字符‘l’,在继承类BB的默认构造函数中,输出字符‘2’,在带有参数n的构造函数中,输出字符‘3’。在主函数中,在创建BB的对象b(4)时,会首先调用基类AA的构造函数输出字符‘l’,再调用类BB带参数的构造函数输出字符‘3’。在创建BB的对象c时,会首先调用基类AA的构造函数输出字符‘l’,再调用类BB默认的构造函数输出字符‘2’。所以程序输出的结果为1312。
转载请注明原文地址:https://kaotiyun.com/show/gsAp777K
0

最新回复(0)