若已定义过类A和B,并且定义类C如下:
若要建立类C的对象object,则类成员val、aObj、bObj和cObj中最后被初始化的是()。
A)val
B)aObj
C)bObj
D)cObj
【解析】
大方向是按成员的声明顺序初始化;
首先调用的是继承的基类的构造函数,如本类的构造函数初始化列表有传递参数给基类则执行之,如有多个基类按继承顺序;(本题没有继承故忽略此步)
其次初始化成员对象,如有多个成员对象按声明顺序;(故本题aObj和bObj先初始化)
最后按照声明顺序初始化类中其它的成员。(所以val第三个被初始化,cObj最后被初始化)
注:cObj是指针不是成员对象!本类构造函数的初始化列表中用0初始化指针cObj。