清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生

C++语言程序设计 第七章继承与派生 x
1 第七章 继承与派生 C++语言程序设计

C++语言程序设计 本章简介 C++支持类的继承与派生机制。 继承与派生是面向对象程序设计的关键概念。 ●通过继承与派生,实现代码重用。 x
C++语言程序设计 2 本章简介 ⚫ C++支持类的继承与派生机制。 ⚫ 继承与派生是面向对象程序设计的关键概念。 ⚫ 通过继承与派生,实现代码重用

C++语言程序设计 本章主要内容 ●类的继承与派生 ●类成员的访问控制 单继承与多继承 ●派生类的构造、析构函数 ●多级多继承中成员的标识与访问 x
C++语言程序设计 3 本章主要内容 ⚫类的继承与派生 ⚫类成员的访问控制 ⚫单继承与多继承 ⚫派生类的构造、析构函数 ⚫多级多继承中成员的标识与访问

C++语言程序设计 类的继承与派生 保持已有类的特性而构造新类的过程 称为继承。 在已有类的基础上新增自己的特性而 产生新类的过程称为派生。 ●被继承的已有类称为基类(或父类)。 派生出的新类称为派生类。 x
C++语言程序设计 4 类的继承与派生 ⚫ 保持已有类的特性而构造新类的过程 称为继承。 ⚫ 在已有类的基础上新增自己的特性而 产生新类的过程称为派生。 ⚫ 被继承的已有类称为基类(或父类)。 ⚫ 派生出的新类称为派生类

C++语言程序设计 继永与派生问题举例 类 交通工具 的 继 汽车 承与派生 事物的层次关系 小汽车卡车旅行车 工具车轿车面包车 x
C++语言程序设计 5 继承与派生问题举例 工具车 轿 车 面包车 小汽车 卡 车 旅行车 汽 车 类 交通工具 的 继 承 与 派 生 事 物 的 层 次 关 系

C++语言程序设计 继永与派生的目的 类 的。继承的目的:实现代码重用。 继 承·派生的目的:当新的问题出现,原有 与程序无法解决(或不能完全解决)时, 派 生需要对原有程序进行改造。 x
C++语言程序设计 6 继承与派生的目的 ⚫ 继承的目的:实现代码重用。 ⚫ 派生的目的:当新的问题出现,原有 程序无法解决(或不能完全解决)时, 需要对原有程序进行改造。 类 的 继 承 与 派 生

C++语言程序设计 继承与派生的工作方式 假设已经有了一个学生类 Student ●因为应用的需要,要创建研究生类 Graduate Student ●研究生除了自己特有的属性外,具有学生 的所有性质 用继承与派生的方法重用学生类。 x
C++语言程序设计 7 继承与派生的工作方式 ⚫ 假设已经有了一个学生类Student ⚫ 因为应用的需要,要创建研究生类 GraduateStudent ⚫ 研究生除了自己特有的属性外,具有学生 的所有性质 ⚫ 用继承与派生的方法重用学生类

nc据i腦雄砌饼 #include <string using namespace std class Student [public: Student(char pname="nobody") Istrcpy(name, pname); average= semesterHours =0; y void add Course(int hours, float grade average=( semesterHours* average+ grade);∥总分 semesterHours+= hours;∥总修学时 average/= semesterHours;∥平均分} oid display cout << name=<<name < hours="<<semester Hours<<", average="<<average<<endl; 1 protected: char name[401 int semesterHours float average
C++语言程序设计 8 #include #include using namespace std; class Student {public: Student(char *pname="nobody") {strcpy(name,pname); average = semesterHours =0; } void addCourse(int hours,float grade) { average = (semesterHours * average + grade); //总分 semesterHours +=hours; //总修学时 average /=semesterHours; //平均分} void display() {cout <<"name = "<<name <<",hours = "<<semesterHours<<",average = "<<average<<endl;} protected: char name[40]; int semesterHours; float average; };

C++语言程序设计 class Advisor i int noofMeeting class Graduate Student: public Student public int getQualifier (return qualifier Grade 1 rotected Advisor advisor int qualifier Grade;
C++语言程序设计 9 class Advisor { int noOfMeeting; }; class GraduateStudent:public Student { public: int getQualifier(){return qualifierGrade;} protected: Advisor advisor; int qualifierGrade; };

C++语言程序设计 void tn(student &s) 【∥任何需要处理的学生问题 int main( i Student ds(John") Graduate Student gs 对象gs可以做对象ds能做 ds. add Course(4, 8.5) 的任何事情。 ds display gs addCourse(3, 7.5) gs display x fn(gs)
C++语言程序设计 10 void fn(Student &s) { //任何需要处理的学生问题 } int main() { Student ds("John"); GraduateStudent gs; ds.addCourse(4,8.5); ds.display(); gs.addCourse(3,7.5); gs.display(); fn(gs); } 对象gs可以做对象ds能做 的任何事情
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- The MIT Press:How to Design Programs——An Introduction to Computing and Programming.pdf
- 《计算机基础——系统安全》课程教学资源(PPT课件)第8章 安全协议.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第7章 认证 Authentication.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第10章 信息系统安全等级与标准.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第2篇 信息系统安全信任体系 第6章 数据加密与数据隐藏修改.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第2章 黑客.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第1章 病毒及其防治.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第3篇 信息系统安全体系结构与评估标准 第9章 信息系统安全体系结构.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第5章 信息系统安全事件响应.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第4章 信息系统安全监控.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第3章 信息系统隔离技术.ppt
- 泰州职业技术学院计算机信息管理(成人高职)专业教学计划.doc
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第9章 MATLAB符号计算.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第8章 MATLAB数值积分与微分.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第7章 MATLAB解方程与函数极值.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第6章 MATLAB数据分析与多项式计算.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第5章 MATLAB绘图.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第4章 MATLAB文件操作.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)课程简介(李莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第一章 绪论(主讲:贾永红).pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第二章 基本概念.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第三章 图像变换.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第四章 图像增强.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第五章 图像复原与重建.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第六章 图像编码与压缩.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第七章 图像分割.pps
- 计算机基础知识(PPT讲稿).ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)导课.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)第二章 CAD/CAM子系统的体系结构.ppt