个派生类只从一个基类派生,这称为单继承 (single inheritance),这种继承关系所形成的 层次是一个树形结构,可以用图11.3表示。 A A3 32 A33 图11.3 在本书中约定,箭头表示继承的方向,从派 生类指向基类
在本书中约定,箭头表示继承的方向,从派 生类指向基类。 图11.3 一个派生类只从一个基类派生,这称为单继承 (single inheritance),这种继承关系所形成的 层次是一个树形结构,可以用图11.3表示
一个派生类不仅可以从一个基类派生,也可以从 多个基类派生。一个派生类有两个或多个基类的称 为多重继承(multiple inheritance),这种继承关 系所形成的结构如图11.4所示。 B C AC AB BC ABCI ABC2 ABC3 图11.4
图11.4 一个派生类不仅可以从一个基类派生,也可以从 多个基类派生。一个派生类有两个或多个基类的称 为多重继承(multiple inheritance),这种继承关 系所形成的结构如图11.4所示
关于基类和派生类的关系,可以表述为:派 生类是基类的具体化,而基类则是派生类的抽 象 学生 小学生 中学生 大学生 研究生 留学生 初中生 高中生 专科生 本科生 硕士生博士生 图11.5
关于基类和派生类的关系,可以表述为: 派 生类是基类的具体化,而基类则是派生类的抽 象 图11.5
11.2派生类的声明方式 在基类Student的基础上,单继承派生类Student1: class Student1:public Student //声明基类是Student public: void display_1() //新增加的成员函数 {cout<<"age:"<<age<<endl; cout<<"address:"<<addr<<endl;} private: int age; /新增加的数据成员 string addr; /新增加的数据成员 }
11.2 派生类的声明方式 在基类Student的基础上,单继承派生类Student1: class Student1: public Student //声明基类是Student {public: void display_1( ) //新增加的成员函数 {cout<<″age: ″<<age<<endl; cout<<″address: ″<<addr<<endl;} private: int age; //新增加的数据成员 string addr; //新增加的数据成员 };
public的称为“公用继承(public inheritance)” 声明派生类的一般形式为 class派生类名:[继承方式]基类名 派生类新增加的成员 public(公用的) 此项可选,若不 继承方式 private(私有的) 写,则默认为 private(私有的) protected(受保护的)
继承方式 public(公用的) private(私有的) protected(受保护的) 此项可选,若不 写,则默认为 private(私有的) public的称为“公用继承(public inheritance)” 声明派生类的一般形式为 class 派生类名: [继承方式] 基类名 { 派生类新增加的成员 } ;