派生类把基类继承以后,怎么样通过派生类完成对基类成员进行初始化呢?一般默认情况下,基类的构造函数不被继承,派生类需要定义自己的构造函数。一般情况下,通过派生类将参数传递给基类的构造函数,完成对基类的初始化,C++11规定,可以使用using语句继承基类构造函数,但是只能初始化从基类继承的成员,语法形式:using B::B。
1. 派生类的构造函数
1.1 若不继承基类的构造函数:
- 派生类新增成员:派生类定义构造含函数初始化;
- 继承来的成员:自动调用基类构造函数进行初始化;
- 派生类的构造函数需要给积累的构造函数传递参数
1.2 单继承时构造函数的定义语法:
派生类名::派生类名(基类所需的形参,本类成员所需的形参):
基类名(参数表),本类成员初始化列表
{
//其他初始化
};
1.3 多继承时构造函数的定义语法:
派生类名::派生类名(参数表)
基类名1(基类1初始化参数表),
基类名2(基类2初始化参数表),
...
基类名n(基类n初始化参数表),
本类成员初始化列表
{
//其他初始化;
};
1.4 派生类与基类的构造函数
当基类有默认构造函数时