派生类的构造函数

  • 派生类对象包含基类对象
  • 执行派生类构造函数之前,先执行基类的构造函数
  • 派生类交代基类初始化,具体形式:

构造函数名(形参表):基类名(基类构造函数实参表

{

}

析构函数先调用派生类的构造函数,再调用基类的析构函数。

创建派生类的对象时,执行派生类的构造函数之前:

  • 调用基类的构造函数------初始化派生类对象中从基类继承的成员
  • 调用成员对象类的构造函数------初始化派生类对象中的成员对象

执行完派生类的析构函数后:

  • 调用成员对象类的析构函数
  • 调用基类的析构函数

析构函数的调用顺序和构造函数的调用顺序相反。

调用基类构造函数的两种方式

  • 显示方式
  • 隐式方式

显示方式调用时,基类的构造函数是带有参数的,或者我们需要对派生类中的成员变量进行初始化。如果基类的构造函数重载,则会根据参数表自动调用相应的构造函数。

 

如果在基类和子对象类型的声明中都没有定义带参数的构造函数,而且不需要对派生类自己的数据成员初始化,那么系统会为派生类创建一个默认的构造函数,而这个默认的构造函数会调用基类的构造函数,这样就实现了隐式调用基类构造函数。

 参考链接:

https://www.coursera.org/learn/cpp-chengxu-sheji

原文地址:https://www.cnblogs.com/helloforworld/p/5655279.html