问题
单项选择题
有如下程序:
#include<iostream>
using namespace std;
class A
public:
A()cout<<"A";
;
classBpublic:B().cout<<"B";
classC:public A
B b;
public:
C()cout<<"C";
;
int main() C obj; return 0;
执行后的输出结果是
A.CBA
B.BAC
C.ACB
D.ABC
答案
参考答案:D
解析: 本题考核类的继承与派生。派生类构造函数执行的一般次序如下:首先调用基类构造函数,调用顺序按照它们被继承时说明的顺序。然后调用子对象的构造函数,调用顺序按照它们在类中的说明顺序。最后是派生类构造函数中的内容。题中,类A是基类,类C是基类A的派生类,类B的对象b是类C的私有成员。所以最后的输出为ABC。