C++ 派生类与继承ppt课件.ppt
《C++ 派生类与继承ppt课件.ppt》由会员分享,可在线阅读,更多相关《C++ 派生类与继承ppt课件.ppt(42页珍藏版)》请在三一办公上搜索。
1、第4章 派生类与继承,继承在已有类的基础上建立一个新类的过程称为继承被继承的已有类称为基类(父类)派生在已有类的基础上新增自己的特性(属性与行为)而产生新类的过程称为派生派生出的新类称为派生类(子类),继承与派生的目的:实现代码的重用与扩充,4.1派生类的概念,4.1.1继承单继承派生类只从一个基类派生,多重继承一个派生类有两个或多个基类,多级派生(多层派生)派生类又作为基类,继续派生新的类,4.1.2派生类的声明class 派生类名:继承方式 基类名 /派生类新增的数据成员和成员函数; 继承方式:规定了如何访问从基类继承的成员,可以是private,protected,public三种方式.
2、,/定义一个基类class Person public: void print() / protected: string name; int age; char sex; ;,/定义一个派生类class Employee:public Person public: void print1() . private: string department; float salary; ;,由类Person继承出类Employee有三种继承方式 (1) 公有继承 class employee:public person / ; (2) 私有继承 class employee:private pers
3、on / ; (3) 保护继承 class employee:protected person / ;,4.1.3派生类的构成 派生类除了可以从基类继承成员外,还可以增加自己的数据成员和成员函数.这些新增的成员正是派生类不同于基类的关键所在,是派生类对基类的发展.,继承,新增(发展),继承与派生的目的:实现代码的重用与扩充,构造一个派生类一般过程:(1)派生类从基类接收成员 C+继承中,派生类把基类的全部成员(构造函数与析构函数除外)接收过来.(2)调整从基类接收来的成员(3)在派生类中增加新成员.,4.1.4基类成员在派生类中的访问属性 派生类继承基类中全体成员(除了构造函数与析构函数).这
4、些成员的访问属性在派生程中可以调整. 从基类继承来的成员在派生类的访问属性是由继承方式控制. class 派生类名:继承方式 基类名 / . 继承方式为public,protected,private.不同的继承方式,导致不同访问属性的基类成员在派生类的访问属性有所不同. 用公有继承方式建立的派生类称为公有派生类 用私有继承方式建立的派生类称为私有派生类 用保护继承方式建立的派生类称为保护派生类,表:基类成员在派生类中的访问属性,4.1.5 派生类对基类成员的访问规则 类的继承方式有 public(公有继承) protected(保护继承) private(私有继承) 不同的继承方式导致原来具
5、有不同访问属性的基类成员在派生类中的访问属性不同. 派生类对基类成员的访问形式有以下两种: (1)内部访问,派生类的新增成员函数对基类继承的成员的访问 (2)对象访问,在派生类的外部,以派生类的对象对基类继承来的成员的访问.,1.私有继承的访问规则,基类中的private成员,既不能被派生类的对象访问, 也不能被派生类的新增成员函数访问(内部访问).,class Base public: void setx(int n) x=n; void showx() cout xendl; private: int x;class Derived: private Base public: void s
6、etxy(ini n,int m) setx(n); y=m; void showxy(); cout x; coutyendl private: int y;,int main() Derived obj; obj.setx(10); obj.showx(); obj.setxy(20,30); obj.showxy(); return 0;,2.公有继承的访问规则,class Base public: void setxy(int m,int n) x=m; y=n; void showxy() cout x y endl; private: int x; protected: int y
7、; class Derived: public Base public: void setxyz(ini m,int n,int l) setxy(m,n); z=l; void showxyz(); cout x; couty; cout z; private: int z;,int main() Derived obj; obj.setxyz(30,40,50); obj.showxy(); obj.y=60; obj.showxyz(); return 0;,3.保护继承的访问规则,4.2派生类的构造函数与析构函数,派生类继承了基类的成员,实现了代码的重用,引入继承更主要的目的是代码的扩
8、充.所以,只有在派生类中加入新成员,派生才更有实际意义.派生类不能继承基类的构造函数,在派生类中对新增成员的初始化,加入派生类的构造函数,基类继承下来的成员初始化有基类构造函数完成.同样,当搞清对象时,也需要加入派生类的析构函数来执行清理工作.,4.2.1 派生类构造函数和析构函数的执行顺序,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数;当撤消派生类的对象时,则先执行派生类的析构函数,随后再执行基类的析构函数.,例:class Base public: Base() coutConstructing base classn; Base() coutDestructin
9、g base classn; ;class Derive:public Base public: Derive()coutConstructing derived classn; Derive()coutDestructing derived classn; int main() Derive op; return 0; ,Constructing base classConstructing derived classDestructing derived classDestructing base class,4.2.1 派生类构造函数和析构函数的构造规则,1.简单派生类的构造函数 当基类
10、的构造函数没有参数,或没有显示定义构造函数时,派生类可以不向基类传递参数,甚至可以不定义构造函数. 当基类含有带参数的构造函数时,由于派生类不能继承基类的构造函数与析构函数,此时,派生类必须定义构造函数,以提供把参数传递给基类构造函数的途径.,在C+中派生类构造函数的一般形式为:派生类名(参数总表):基类名(参数表) / 派生类新增数据成员的初始化语句 其中:基类构造函数的参数,通常来源于派生类构造函数的参数总表.也可用常数值.,class Student public: Student(int number1,string name1,float score1) number=number1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 派生类与继承ppt课件 派生 继承 ppt 课件

链接地址:https://www.31ppt.com/p-1375495.html