需求

子类构造时会调用父类构造函数,具体如何匹配?

解决

父类 子类 匹配
null null 编译器默认生成 父类和子类的构造函数
null 无参 或 带参 调用编译器生成的父类构造函数
无参 没有显式调用父类构造函数 隐式调用父类无参构造函数
带参 必须显式调用父类构造函数 显式调用,否则编译会报错
带参且都有默认值 不用显式调用父类构造函数 可以隐式调用父类有默认值的带参构造函数
无参或带参 只需要实现父类构造函数中的任何一个即可 没有显式调用的情况下,默认调用父类无参构造函数

参考

c++ 子类构造函数初始化及父类构造初始化

C++子类构造函数初始化及父类构造初始化