OOP一道关于构造函数的选择题

题主学习OOP,遇到了这样一道选择题

img

标准答案是B
题主不理解第13行A a{'x'};的写法是干什么,以及为什么这种写法下A会构造两次,一次c=‘c’,一次c='x'
请求帮助!

A a{'x'}构造了一个a对象,传入初始值'x',所以会调用A(char x)这个构造函数

那么构造顺序是

  • 基类A构造,打印A
  • B的成员变量a构造,打印X
  • B的构造函数,打印B
    析构正好相反
  • B的析构函数,打印b
  • B的成员变量a析构,打印x,因为这个值被初始化为x了
  • 基类A析构,打印c