




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年潍坊工商职业学院人才引进计划(70人)模拟试卷附答案详解(黄金题型)
- 2025年甘肃畜牧工程职业技术学院招聘工作人员15人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025江苏苏州千灯镇招聘镇属公司工作人员拟录用笔试历年参考题库附带答案详解
- 2025湖南张家界市市场监督管理局招聘公益性岗位人员1人模拟试卷及完整答案详解1套
- 2025陕西西安市建总工程集团3月招聘笔试历年参考题库附带答案详解
- 2025重庆演艺集团招聘综合管理宣传推介策划执行等岗位招聘5人笔试历年参考题库附带答案详解
- 2025广西南宁市江南区翠湖路小学春季学期临聘教师招聘1人模拟试卷及参考答案详解
- 2025贵州黔凯城镇建设投资(集团)有限责任公司招聘工作人员缴费成功人数与招聘岗位人数达不到31比例岗位(截止9月17日1700)笔试历年参考题库附带答案详解
- 2025年德阳市事业单位公开考试招聘工作人员笔试模拟试卷附答案详解(黄金题型)
- 2025年4月四川乐山昶康心血管病医院招聘医护人员12人考前自测高频考点模拟试题有答案详解
- CRT2000 消防控制室图形显示装置-使用说明书-V1.0
- 文旅演艺活动
- 房地产中介服务操作流程手册
- 2025年大邑人才引进面试题及答案
- 多感官交互效应分析-洞察及研究
- 结核病临床技能竞赛试题及答案2025版
- 双碳战略下电气工程专业课程体系创新与实践
- 洗煤厂安全生产管理制度
- 2025年中国毛皮服装市场调查研究报告
- 湖北建筑工程资料表格全套
- 中医耳鼻喉科学多媒体课件-鼻炎课件
评论
0/150
提交评论