第二节单繼承的派生类 (教材①203-219) void main(void) { Base a(10.0,20.0); Derived b(10.0,20.0,30.0); a printo; b printo;
第二节 单继承的派生类 (教材①203-219) void main(void) { Base a(10.0,20.0); Derived b(10.0,20.0,30.0); a.print(); b.print(); }
第二节单繼承的派生类 (教材①203-219) 2、说明 >在定义派生类时用“:”将派生类与基类分开,构成类 的层次结构; 派生类与普通类的定义一样,仍然有数据成员与成员 函数; 派生类的构造函数中必须提供为基类数据成员进行初 始化的参数表。格式: 派生类名(参数表:基类名(参数名1,参数名2,… <函数体> >其中,参数表中必须包含基类的数据成员和派生类 中新增数据成员的初始化参数
第二节 单继承的派生类 (教材①203-219) 2、说明: ➢在定义派生类时用“:”将派生类与基类分开,构成类 的层次结构; ➢派生类与普通类的定义一样,仍然有数据成员与成员 函数; ➢派生类的构造函数中必须提供为基类数据成员进行初 始化的参数表。格式: 派生类名(参数表): 基类名(参数名1,参数名2,…) { <函数体> } ➢其中,参数表中必须包含基类的数据成员和派生类 中新增数据成员的初始化参数
第二节单繼承的派生类 (教材①203-219) 公有继承和私有继承 →>从上例可以看到,在定义派生类时,需要在基类名前 ()继承方式 继承方式种类 >继承方式包括:公有继承( public)、私有继承 ( private)保护继承( protected)等三种继承方式 其派生类分别称为公有派生类、私有派生类、保护派 生类。 2、不同继承方式下基类成员的访问特性教材 P206表41。 >由于保护继承很少使用,主要讨论公有继承和私有继 承
第二节 单继承的派生类 (教材①203-219) 二、公有继承和私有继承 ➢从上例可以看到,在定义派生类时,需要在基类名前 加上派生方式,或称为继承方式。 ㈠ 继承方式 1、继承方式种类 ➢继承方式包括:公有继承(public)、私有继承 (private)、保护继承(protected)等三种继承方式; 其派生类分别称为公有派生类、私有派生类、保护派 生类。 2、不同继承方式下基类成员的访问特性——教材① P206表4.1。 ➢由于保护继承很少使用,主要讨论公有继承和私有继 承
第二节单繼承的派生类 (教材①203-219) 由表中可知: (1)基类的私有成员在派生类的作用域内均不可见。 >无论那种继承方式,派生类的成员函数均不能使用基 类的私有成员; 派生类中可以通过调用基类中的公有成员函数访问基 类中的私有数据成员。 (2)保护成员 >私有继承:保护成员在派生类中变为私有成员可 以在派生类中直接访问; 公有继承:保护成员在派生类中的访问权限不改变 可以在派生类中直接访问
第二节 单继承的派生类 (教材①203-219) 由表中可知: ⑴ 基类的私有成员在派生类的作用域内均不可见。 ➢无论那种继承方式,派生类的成员函数均不能使用基 类的私有成员; ➢派生类中可以通过调用基类中的公有成员函数访问基 类中的私有数据成员。 ⑵ 保护成员 ➢私有继承:保护成员在派生类中变为私有成员——可 以在派生类中直接访问; ➢公有继承:保护成员在派生类中的访问权限不改变— —可以在派生类中直接访问;
第二节单繼承的派生类 (教材①203-219) 例【4.2】保护成员的使用(e402cpp) (3)公有成员 →>私有继承:公有成员在派生类中变为私有成员 >公有继承:公有成员在派生类中的访问权限不改变。 →3、结论: 公有继承与私有继承的相同点:两种派生方式,其基 类中的私有成员,在派生类中均无权使用,只能通过 基类的公有成员访间 >公有继承与私有继承的不同点:公有派生时,基类中 的公有成员、保护成员在派生类中的访问权限不变 私有继承时,基类中的公有成员、保护成员均变为系 有成
第二节 单继承的派生类 (教材①203-219) 例【4.2】保护成员的使用(e402.cpp) ⑶ 公有成员 ➢私有继承:公有成员在派生类中变为私有成员; ➢公有继承:公有成员在派生类中的访问权限不改变。 3、结论: ➢公有继承与私有继承的相同点:两种派生方式,其基 类中的私有成员,在派生类中均无权使用,只能通过 基类的公有成员访问; ➢公有继承与私有继承的不同点:公有派生时,基类中 的公有成员、保护成员在派生类中的访问权限不变; 私有继承时,基类中的公有成员、保护成员均变为私 有成员