中国高校课件下载中心 》 教学资源 》 大学文库

《面向对象程序设计》课程教学课件(PPT讲稿)第五章 继承与派生

文档信息
资源类别:文库
文档格式:PPT
文档页数:84
文件大小:1.24MB
团购合买:点击进入团购
内容简介
5.1 继承与派生的概念 5.2 派生类的声明方式 5.3 派生类的构成 5.4 派生类成员的访问属性 5.5 派生类的构造函数和析构函数 5.6 多重继承 5.7 基类与派生类的转换 5.8 继承与组合 5.9 继承在软件开发中的重要意义
刷新页面文档预览

第五章继承与派生 5.1继承与派生的概念 5.2派生类的声明方式 5.3派生类的构成 5.4派生类成员的访问属性 5.5派生类的构造函数和析构函数 5.6多重继承 5.7基类与派生类的转换 5.8继承与组合 5.9继承在软件开发中的重要意义 0

0 5.1 继承与派生的概念 5.2 派生类的声明方式 5.3 派生类的构成 5.4 派生类成员的访问属性 5.5 派生类的构造函数和析构函数 5.6 多重继承 5.7 基类与派生类的转换 5.8 继承与组合 5.9继承在软件开发中的重要意义 第五章 继承与派生

5.1继承与派生的概念 一、为什么需要?(why) 类之间往往具有某种关系,“继承与派生”就是类间 的一种常用关系。 例如,人→学生→小学生 形状→点一→圆 又例如,公司四种雇员档案的管理: employee(员工):姓名、年龄、工资; manager(经理):姓名、年龄、工资、行政级别; engineer(工程师):姓名、年龄、工资、专业、学位; director(高级主管):姓名、年龄、工资、专业、学位、 职务 代码重复?

5.1 继承与派生的概念 一 、为什么需要?(why) 类之间往往具有某种关系, “继承与派生”就是类间 的一种常用关系。 例如,人 → 学生 → 小学生 形状 → 点 →圆 又例如,公司四种雇员档案的管理: employee(员工): 姓名、年龄、工资; manager(经理): 姓名、年龄、工资、行政级别; engineer(工程师): 姓名、年龄、工资、专业、学位; director(高级主管):姓名、年龄、工资、专业、学位、 职务 代码重复? 1

5.1继承与派生的概念 C++提供了继承与派生的功能,能很好地解决上 述问题(使代码可重用,避免重复!)。 二、相关概念: 1、继承与派生 所谓继承,就是根据一个已存在的类建立一个新的类。 已存在的类叫“基类”或“父类”,新建立的类叫“派生 类”或“子类”。 新建立的子类从基类那里获得基类的特性,称为类的继 承;由基类产生新的子类,叫派生

C++提供了继承与派生的功能,能很好地解决上 述问题(使代码可重用,避免重复!)。 5.1继承与派生的概念 二、相关概念: 1、继承与派生 所谓继承,就是根据一个已存在的类建立一个新的类。 已存在的类叫“基类”或“父类”,新建立的类叫“派生 类”或“子类” 。 新建立的子类从基类那里获得基类的特性,称为类的继 承;由基类产生新的子类,叫派生。 2

5.1继承与派生的概念 2、单继承: 人 学生 员工 小学生 大学生 经理 工程师 图5-1一个基类派生多级子类示意图 约定:箭头方向表示继承的方向,由派生类指向基类。 一个派生类只从一个基类派生,称为单继承;此种继承关 系所形成的层次是一个树形结构。 3

3 人 学生 员工 小学生 大学生 经理 工程师 图5-1 一个基类派生多级子类示意图 约定:箭头方向表示继承的方向,由派生类指向基类。 一个派生类只从一个基类派生,称为单继承;此种继承关 系所形成的层次是一个树形结构。 2、单继承: 5.1继承与派生的概念

5.1继承与派生的概念 3、多继承 基类: 研究生 职工 派生类: 在职研究生 图5-2多个基类派生一个子类示意图。 一个派生类有两个或多个基类的称为多重继承

4 5.1 继承与派生的概念 3、多继承 研究生 职工 在职研究生 基类: 派生类: 图5-2 多个基类派生一个子类示意图。 一个派生类有两个或多个基类的称为多重继承

5.1继承与派生的概念 4、多层次继承: 派生类可以作为基类再继续派生出更新的类,依此 类推形成一个层次结构。直接参与派生出某类称为直 接基类,而基类的基类,以及更深层的基类称为间接 基类。 学生 员工 小学生 大学生 经理 工程师

派生类可以作为基类再继续派生出更新的类,依此 类推形成一个层次结构。直接参与派生出某类称为直 接基类,而基类的基类,以及更深层的基类称为间接 基类。 4、多层次继承: 5.1 继承与派生的概念 人 学生 员工 小学生 大学生 经理 工程师 5

5.1继承与派生的概念 5、类族: CObject 令 CCmdTarget CWinThread CWnd CDocument CHinApp CFrameWnd CView CDialog 好 CIDIFrameWnd CIDIChildWnd C题inFrameWnd 6

5、类族: 一个基类可以派生出多个派生类。这样形成了一个 相互关联的类族。MFC就是这样的类族。 5.1 继承与派生的概念 6

5.2派生类的声明方式 一、声明方式 class派生类名:继承方式基类名 private: 成员表1; public: 成员表2: protected: 成员表3; }; 基类名是已定义的类。在派生类的类体中定义的成员称为 派生类成员,它们是新增加成员,给派生类添加了不同于基 类的新的属性和功能。 7

7 5.2 派生类的声明方式 一、声明方式 class 派生类名:继承方式 基类名 { private: 成员表1; public: 成员表2; protected: 成员表3; }; 基类名是已定义的类。 在派生类的类体中定义的成员称为 派生类成员,它们是新增加成员,给派生类添加了不同于基 类的新的属性和功能

二、例5.1把student类定义为person类的派生类 ① class student:public person ② {public: ② #include #include ③ void get_st() ③ using namespace std; ④ cin>>stu_id; ④ class person ⑤ ∥引用派生类私有成员 ⑤ {public: ⑥ void student_display() ⑥ void get_value()】 ⑦ cout>num>>name; ⑧ <stu_id<<endl; ⑧ void person_display() ⑨ private: ⑨ {cout<<"id:"<<num<<endl; 四 int stu_id; ⑩ cout<<"name:" ① } ① <<name<<endl; ② ② void main() private: ⑧ int num; student zhangsan; 四 string name; ④ zhangsan.get_value(); ; ⑤ zhangsan.person_display(); 16 zhangsan.get_st(); ⑩ zhangsan.student_display(); 1⑧

① #include ② #include ③ using namespace std; ④ class person ⑤ {public: ⑥ void get_value( ) ⑦ { cin>>num>>name; } ⑧ void person_display( ) ⑨ {cout>stu_id; } ⑤ //引用派生类私有成员 ⑥ void student_display( ) ⑦ { cout<<"stu_id:" ⑧ <stu_id<<endl; } ⑨ private: ⑩ int stu_id; ⑪ }; ⑫ void main( ) ⑬ { student zhangsan; ⑭ zhangsan.get_value(); ⑮ zhangsan.person_display( ); ⑯ zhangsan.get_st(); ⑰ zhangsan.student_display( ); ⑱ } 二、例5.1 把student 类定义为person类的派生类 8

5.2派生类的声明方式 三、练习: 把点类point定义为形状类shapel的派生 类;把圆类circle定义为类shapel的派生 类。 9

三、练习: 把点类point定义为形状类shape的派生 类;把圆类circle定义为类shape的派生 类。 5.2 派生类的声明方式 9

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档