为什么在C ++中创建派生类对象时,它会自动调用没有参数的父类构造函数?
答案 0 :(得分:2)
问题:
为什么在C ++中创建派生类对象时,它会自动调用没有参数的父类构造函数?
答案:因为标准是这样说的(强调我的)。
12.6.2初始化基础和成员
8在非委托构造函数中,如果给定的非静态数据成员或基类未由 mem-initializer-id 指定(包括没有的情况) mem-initializer-list 因为构造函数没有 ctor-initializer )并且实体不是抽象类的虚拟基类(10.4),那么
- 如果实体是具有大括号或等于初始化程序的非静态数据成员,则按照8.5中的规定初始化该实体;
- 否则,如果实体是变体成员(9.5),则不执行初始化;
- 否则,实体默认初始化(8.5)。