继承是在已有类的基础上创建新类的过程;被继承的类称为基类或者父类,而发起继承的类叫做子类或者派生类:类B继承类A,则类A为基类,类B为派生类;
继承的形式:
class 派生类:基类名表//基类名表构成形式为 访问控制 基类名1,访问控制 基类名2.....
{
数据成员 成员函数
};
访问控制 : public 公有继承
private 私有继承
protected 保护继承
派生类的生成:
①派生类吸收基类中除构造函数和析构函数之外的全部成员
②在派生类中定义同名成员可以顶替掉(屏蔽掉)在派生类中不起作用的部分基类成员
③添加新成员
(在派生类中使用基类的同名成员,显式的使用类名限制符 类名::成员)
派生类访问静态成员:
1.基类定义的静态成员,将被所有派生类共享(基类和派生类共享基类中的静态成员)
2.根据静态成员自身的访问特性和派生类的继承方式,在类层次体系中具有不同的访问性质
3.派生类中访问静态成员,用以下形式显式说明 类名 :: 成员
或通过对象访问 对象名 . 成员
基类的初始化:
派生类构造函数 ( 变元表 ) : 基类 ( 变元表 ) , 对象成员1( 变元表 )… 对象成员n ( 变元表 ) ;
构造函数执行顺序:基类 ->对象成员->派生类
派生类析构函数:
(1)当派生类中不含对象成员时
- 在创建派生类对象时,构造函数的执行顺序是:基类的构造函数→派生类的构造函数;
- 在撤消派生类对象时,析构函数的执行顺序是:派生类的析构函数→基类的析构函数。
(2)当派生类中含有对象成员时
- 在定义派生类对象时,构造函数的执行顺序:基类的构造函数→对象成员的构造函数→派生类的构造函数;
- 在撤消派生类对象时,析构函数的执行顺序:派生类的析构函数→对象成员的析构函数→基类的析构函数。