【C++二级难题】对类成员初始化顺序的考察

  若已定义过类A和B,并且定义类C如下:

  若要建立类C的对象object,则类成员val、aObj、bObj和cObj中最后被初始化的是()。
A)val
B)aObj
C)bObj
D)cObj
【解析】
  大方向是按成员的声明顺序初始化;

  首先调用的是继承的基类的构造函数,如本类的构造函数初始化列表有传递参数给基类则执行之,如有多个基类按继承顺序;(本题没有继承故忽略此步)

  其次初始化成员对象,如有多个成员对象按声明顺序;(故本题aObj和bObj先初始化)

  最后按照声明顺序初始化类中其它的成员。(所以val第三个被初始化,cObj最后被初始化)

  注:cObj是指针不是成员对象!本类构造函数的初始化列表中用0初始化指针cObj。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值