![C语言试题学习考试大全.ppt_第1页](http://file.renrendoc.com/FileRoot1/2019-5/6/d2d07756-1370-4336-849e-5b29a0e29f08/d2d07756-1370-4336-849e-5b29a0e29f081.gif)
![C语言试题学习考试大全.ppt_第2页](http://file.renrendoc.com/FileRoot1/2019-5/6/d2d07756-1370-4336-849e-5b29a0e29f08/d2d07756-1370-4336-849e-5b29a0e29f082.gif)
![C语言试题学习考试大全.ppt_第3页](http://file.renrendoc.com/FileRoot1/2019-5/6/d2d07756-1370-4336-849e-5b29a0e29f08/d2d07756-1370-4336-849e-5b29a0e29f083.gif)
![C语言试题学习考试大全.ppt_第4页](http://file.renrendoc.com/FileRoot1/2019-5/6/d2d07756-1370-4336-849e-5b29a0e29f08/d2d07756-1370-4336-849e-5b29a0e29f084.gif)
![C语言试题学习考试大全.ppt_第5页](http://file.renrendoc.com/FileRoot1/2019-5/6/d2d07756-1370-4336-849e-5b29a0e29f08/d2d07756-1370-4336-849e-5b29a0e29f085.gif)
已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
10.继承(inheritance),10.1.1 类层次结构,几个概念: 基类(父类) 派生类(子类):从基类派生而成的类 基类和派生类:构成类的层次关系,10.1.2 派生类对象构造 (Derived Object Structure),基类:BaseClass class BaseClass int a,b; /other private member public: /public member ;,派生类:B class B : public BaseClass int c; /other private member public: /public member ;,a b,BaseClass,a b c,B,基类部分,派生部分,10.2 访问父类成员,10.2.1 继承父类成员 /= / f1001.cpp / 继承 /= #include #include using namespace std; /- class Advisor int noOfMeeting; ; /-,class Student string name; int semesterHours; double average; public: Student(string pName = “noname“) :name(pName),average(0),semesterHours(0) void addCourse(int hours,double grade) double totalGrade = (semesterHours*average + grade); /总分 semesterHours += hours; /总修学时 average = semesterHours ? totalGrade/semesterHours : 0; /平均分 ,int getHours() return semesterHours; double getAverage() return average; void display() cout“name = “name“ “,hours = “semesterHours “,average = “averageendl; ;,class GraduateStudent:public Student Advisor advisor; int qualifierGrade; public: int getQualifier() return qualifierGrade; ;,void main() Student ds(“Lo lee Undergrad“); GraduateStudent gs; ds.addCourse(3,2.5); ds.display(); gs.addCourse(3,3.0); gs.display(); ,图 GraduateStudent 内存布局,example,GraduateStudent gs; Student s(gs); Student,example,void fn(Student ,C+面向对象编程中一条重要的规则是: 公有继承意味着”是一个”(is a),对于class D : public B; 当写下类D(”Derived”)从类B(”Base”)公有继承时,你实际上是在告诉编译器(以及读这段代码的人):类型D的每一个对象也是类型B的一个对象,但反之不成立; 也就是说,B表示一个比D更广泛的概念,D表示一个比B更特定概念;你是在声明:任何可以使用类型B的对象的地方,类型D的对象也可以使用,因为每个类型D的对象是一个类型B的对象。相反,如果需要一个类型D的对象,类型B的对象就不行:每个D “是一个“ B, 但反之不成立。,看这个例子: class Person . ; class Student: public Person . ;,从日常经验中我们知道,每个学生是人,但并非每个人是学生。这正是上面的层次结构所声明的。我们希望,任何对 “人” 成立的事实,如:都有生日,也对 “学生” 成立;但我们不希望,任何对 “学生” 成立的事实, 如:都在某一学校上学,也对 “人“ 成立。人的概念比学生的概念更广泛;学生是一种特定类型的人。,在C+中,任何一个其参数为Person类型的函数(或Person的指针或Person的引用)可以实际取一个Student对象(或Student的指针或Student的引用),例: void dance(const Person / 错误! p不是学生,10.2.2 类内访问控制,继承成员的访问方式 class Base int a ; public: void print() couta; /public member ; class Derived:public Base int b; public: void display() couta; /public member ;,protected,class Base int a; void f()couta; public: int b; void g()couta; protected: int c; void k() couta; ;,class Derived:public Base public: void df() couta; coutb; coutc; f(); g(); k(); ;,void func() Base b; coutb.a; coutb.b; coutb.c; b.f(); b.g(); b.k(); ,10.3派生类的构造,10.3.1 默认构造 通过默认的无参构造函数。,10.3.2 自定义构造,/= / f1002.cpp / 构造派生类 /= #include #include using namespace std; /-,class Advisor int noOfMeeting; public: Advisor()cout“Advisorn“; Advisor(const Advisor,class Student string name; int semesterHours; double average; public: Student(string pName = “noname“):name(pName),average(0),semesterHours(0) cout“Studentn“; void addCourse(int hours,double grade) double totalGrade = (semesterHours*average + grade); /总分 semesterHours += hours; /总修学时 average = semesterHours ? totalGrade/semesterHours : 0; /平均分 ,int getHours() return semesterHours; double getAverage() return average; void display() cout“name = “name“ “,hours = “semesterHours “,average = “averageen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学法用法考试经济法类专题试题
- 2024年河南中考全真模拟化学试卷C
- 云南省昆明2023-2024高三语文上学期第三次双基检测试题无答案
- 2024三年级语文下册第六单元19剃头大师习题课件新人教版
- 白酒包装设计案例分析
- 品牌建设与管理打造独特的企业形象
- 白酒市场的区域分布与开拓
- 哪些树种适合制作木材
- 电机制造中的竞争力提升与品牌建设
- 林木育种的资源可持续利用与保护
- 小学数学四年级下册 期末测试卷附参考答案【综合题】
- 2023-2024学年上海市虹口区九年级(上)期末数学试卷(一模)及答案解析
- 华为es3000 v5 nvme pcie ssd 白皮书
- 公务员考试遴选、选调考试答题卡练字方格(A4纸可直接打印)
- 增强现实(AR)ppt课件
- 单位委托存档人员聘用期内情况表
- 夏米尔240CC机床资料.ppt
- 北师大版小学数学三年级下册全册教学反思
- 俄罗斯的建筑ppt课件
- 输电线路零序电流保护设计.doc
评论
0/150
提交评论