继承就是在一个已有的类的基础上创建一个新的类。
已有的类叫做基类或父类,新类则叫做派生类或子类,注意这两种叫法是一一对应的,不能叫错了名称。
类继承关系的语法形式
class 派生类名: 基类名表
{
数据成员和成员函数声明
};
基类名表的构成
访问控制 基类名1, 访问控制 基类名2,… ,访问控制 基类名n
访问控制表示派生类对基类的继承方式: public 公有继承 private 私有继承 protected 保护继承
如果一个基类名表中只有一个基类,那么就称为单继承,否则就称为多继承,在这里我们重点了解单继承。在类的继承中,派生类继承基类的构造函数和析构函数之外的所有成员,但是不论哪种方式继承基类都不可以对基类的私有数据成员进行直接操作,但是可以通过基类中的成员函数来对基类中私有数据成员进行操作。如果基类没有定义构造函数或有无参的构造函数,派生类也可以不用定义构造函数。如果基类无无参的构造函数,派生类必须定义构造函数。如果派生类的基类也是派生类,则每个派生类只负责直接基类的构造。派生类是否定义析构函数与所属的基类无关。可以再派生类中定义同名成员来隐藏派生类中部分不起作用的基类成员,如果在派生类中使用基类的同名成员,显式地使用类名限定符:类名:: 成员
公有继承:
以公有方式继承的派生类,基类的public和protected成员在派生类中性质不变,派生类可以直接使用这些成员。
派生类中访问静态成员:
基类定义的静态成员,将被所有派生类共享(基类和派生类共享基类中的静态成员)。派生类中访问静态成员,用以下形式显式说明:类名:: 成员或通过对象访问 对象名 . 成员。
基类的初始化:
派生类构造函数 ( 变元表 ): 基类 ( 变元表 ), 对象成员1(变元表 )… 对象成员n ( 变元表 );
构造函数执行顺序:基类->对象成员->派生类。
析构函数执行顺序:派生类->对象成员->基类。
几个类共同的成员可以写成一个基类,并继承给这几个类。
继承的用处是显而易见的,它能够大大的节省一些不必要的代码,可以更好的提高代码的利用效率,在今后的代码编程中,继承肯定会有很大的作用。