MST

星途 面试题库

面试题:C++中构造函数调用顺序相关基础问题

假设有一个继承体系,基类Base有构造函数,派生类Derived继承自Base也有构造函数,且Derived类中还包含一个其他类成员对象Member。请描述在创建Derived类对象时,Base构造函数、Derived构造函数以及Member构造函数的调用顺序,并简要说明原因。
41.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 调用顺序
    • 首先调用Base构造函数。
    • 然后调用Member构造函数。
    • 最后调用Derived构造函数。
  2. 原因
    • 基类的成员是派生类对象的一部分,在派生类对象构造之前,必须先构造基类部分,所以先调用Base构造函数。
    • 对于类中的成员对象,会在进入本类构造函数体之前按照声明顺序进行构造,所以Member构造函数在Base构造函数之后,Derived构造函数体执行之前调用。
    • 最后执行Derived构造函数体,完成派生类对象的构造。