C++总结:类的继承基础
1. 类的继承
class 派生类名: 继承方式 基类1, 继承方式 基类2...
{
派生类成员声明
}
基类的构造函数和析构函数不能被派生类继承。
如果派生类中出现了和基类中名称相同的函数,则基类的函数会被隐藏。
2. 构造函数、析构函数
2.1 构造函数
如果无需对派生类使用参数初始化,可以不写构造函数。此时系统会隐性写一个默认构造函数,该函数会使用基类的默认构造函数对继承自基类的成员进行初始化,并调用类成员对象的默认构造函数对其进行初始化。
派生类构造函数的一般语法:
派生类名::派生类名(参数表):基类名1(该基类初始化参数), ... 基类名n(该基类初始化参数), 成员对象名1(该成员初始化参数), ..., 成员对象名m(该成员初始化参数)
{
派生类函数体;
}
构造函数的执行顺序:
1. 按照继承时声明的基类顺序,调用各个基类的构造函数;
2. 按照派生类中新增成员在类中声明的顺序,对各新增成员进行初始化;
3. 执行派生类构造函数的函数体。
#include<stdio.h>
class Base1{
public:
Base1(int i){
printf("Constructing Base1 %d\n",i);}
};
class Base2{
public:
Base2(int i){
printf("Constructing Base2 %d\n",i);}
};
class Base3{
public:
Base3(){
printf("Constructing Base3\n");}
};
class Derived: public Base1, public Base2, public Base3{
public:
Derived(int a, int b, int c, int d):Base1(a), member2