问题 单项选择题

有如下程序:
#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。

单项选择题
单项选择题