一、继承中构造函数的关系
如果父类没有构造函数,则子类初始化时不需要构造父类
如果父类有构造函数,则子类初始化自己的构造函数时,要先初始化父类的构造函数
基类的构造函数必须在派生类的构造函数初始化列表来进行初始化
总结:在构造自己(子类)之前,需要先构造父类
演示案例
例如:下面的父类A有构造函数,则子类B在初始化构造函数时,必须要构造父类A
class A //父类{int a_data;public:A(int data) { a_data = data; }~A() {}//5};class B :public A //子类{int b_data;public:B(int data) :A(10){b_data = data;//3}~B() {}//6};
例如:下面的父类A没有有构造函数,则子类B不需要构造父类
class A //父类{int a_data;};class B :public A //子类{int b_data;public:B(int data){b_data = data;}~B() {}};
二、若一个类中定义了另一类的构造函数关系
与继承中构造父类的构造函数相类似:
如果类中定义的对象没有构造函数,则该类初始化时不需要构造该对象的构造