构造一个类的对象的一般顺序

  1. 如果该类有直接或者间接的虚基类,则先执行虚基类的构造函数。
  2. 如果该类有其他基类,则按照它们在继承声明的列表中出现的次序,分别执行它们的构造函数,但构造过程中,不在执行它们基类的构造函数。
  3. 按照在类定义中出现的顺序,对派生类中新增的成员对象进行初始化。对于类类型的成员对象,如果出现在构造函数初始化列表中,则以其中指定的参数执行构造函数。如果未出现,则执行默认构造函数;对于基本数据类型的成员对象,如果出现在构造函数的初始化列表中,则使用其中指定的值为其赋初值,否则什么页不做。
  4. 执行构造函数的函数体。

猜你喜欢

转载自blog.csdn.net/wangjian530/article/details/80471011