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

admin2020-04-07  31

问题 有如下程序:
#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://jikaoti.com/ti/mAA0FFFM
0

最新回复(0)