派生类的实始化、初始化顺序

1、先实始化父类成员,调用父类的构造函数,有多个基类的从左向右按声明顺序实始化。

2、内嵌对象实始化,内嵌对像的构造器。如果父类或是内嵌对象,有无参构造器的话,可以不用显示的调用。如无无参且未调用则会报错。

3、派生类的构造器。

构造器的调用过程是,基类->成员->子类,而且析构器我们基本上不用去管理,因为析构器没有参数,而析构器的调用过程是,子类->成员->基类。

示例代码如下:

#include <iostream>

using namespace std;

class A
{
public:
	A(int iA){}
};

class B : public A
{
public:
	B(int iA, int iB)
		:A(iA){}	// 子类要给父类有参构造函数传参初始化
};

class C : public B
{
public:
	C(int iC, int iB, int iA)
		:B(iA, iB){} // 子类要给父类有参构造函数传参初始化
};



int main(int argc, char* argv[])
{
	return 0;
}

 

 

说说你的想法