为什么派生类对象会自动调用没有参数的父类构造函数?

时间:2015-12-03 16:26:33

标签: c++

为什么在C ++中创建派生类对象时,它会自动调用没有参数的父类构造函数?

1 个答案:

答案 0 :(得分:2)

问题:

  

为什么在C ++中创建派生类对象时,它会自动调用没有参数的父类构造函数?

答案:因为标准是这样说的(强调我的)。

  

12.6.2初始化基础和成员

     

8在非委托构造函数中,如果给定的非静态数据成员或基类未由 mem-initializer-id 指定(包括没有的情况) mem-initializer-list 因为构造函数没有 ctor-initializer )并且实体不是抽象类的虚拟基类(10.4),那么

     

- 如果实体是具有大括号或等于初始化程序的非静态数据成员,则按照8.5中的规定初始化该实体;
   - 否则,如果实体是变体成员(9.5),则不执行初始化;
   - 否则,实体默认初始化(8.5)。