选择题
5.
有如下程序
#include<iostream>
using namespace std;
class Base{
protected:
Base(){cout<<'A';}
Base(char C){cout<<c;}
};
class Derived:public Base{
public:
Derived(char C){cout<<c;}
};
int main(){
Derived d1('B');
return 0;
}
执行这个程序屏幕上将显示输出______。
A、
B
B、
BA
C、
AB
D、
BB
【正确答案】
C
【答案解析】
此题考查的是派生类对象的构造。建立派生类对象时,构造函数的执行顺序是:执行基类的构造函数,调用顺序按照各个基类被被继承时声明的顺序;执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序;执行派生类的构造函数。此题中,在建立派生类Derived的对象d1时会先调用基类Base的构造,调用的是默认构造函数,输出字符‘A’;然后调用自身的构造函数,输出‘B’;故程序的输出结果是:AB。
提交答案
关闭