《C++》课件项目7 师生通讯录.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《C++》课件项目7 师生通讯录.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ C+课件项目7 师生通讯录 课件 项目 师生 通讯录
- 资源描述:
-
1、项目7 师生通讯录课件目录7.1 项目情景17.2 知识准备27.3 项目解决37.4 知识拓展47.1 项目情景 现实世界中的类不是孤立存在的,类与类之间有着一定的关系。设计师生通讯录管理系统,定义人类,在人类的基础上定义教师类与学生类,完成教师与学生信息的现实。我们即将面对的是面向对象的三大特点之一:继承。7.2 知识准备7.2.1 继承与派生 7.2.1 继承与派生1.基类与派生类(1)单继承基类基类人类的派生类人类的派生类研究生类的基类研究生类的基类7.2.1 继承与派生(2)多继承iostream的基类的基类iostream 的基类的基类istream与与ostream的派生类的派生
2、类7.2.1 继承与派生2.派生类定义单一继承派生类定义格式class 派生类名:继承方式 基类名 派生类新增加的数据成员 派生类新增加的成员函数;7.2.1 继承与派生例7.1 以人类为基类派生出学生类。class Person /定义基类private:string name;int age;char sex;public:Person(string n,int a,char s);void show_p();class Student:public Person/定义派生类private:派生类中新增加的数据成员int no;string bj;public:Student(string
3、 n,int a,char s,int n2,string b);派生类中新增加的成员函数void show_s();/;7.2.1 继承与派生说明1 在已有类的基础上派生出新类时在派生类中可以:(1)增加新的数据成员。(2)增加新的成员函数。(3)重新定义基类中已经有的函数。(4)改变现有成员的访问权限。(5)派生类成员包括基类成员和新增成员。说明2 继承方式有如下三种:(1)public (2)protected (3)private说明3 (1)构造函数不能够继承。(2)析构函数不能够继承。7.2.1 继承与派生思考:例7_1中Student类中有哪些数据成员和成员方法?7.2.1 继承
4、与派生3.继承方式 派生类继承了基类中除构造函数和析构函数之外的所有成员,但根据不同的继承方式其成员在派生类的访问权限也相应的发生了变化,其继承方式与成员访问权限变化规则如表所示。7.2.1 继承与派生 在基类中的访问权限在基类中的访问权限继承方式继承方式在派生类中访问权限在派生类中访问权限privatepublicpublicprivate(不可使用)protectedprotectedpublicpublicprivateprotectedprotectedprivate(不可使用)protectedprotectedpublicprotectedprivateprivateprivate
5、private(不可使用)protectedprivatepublicprivate7.2.1 继承与派生4.派生类构造函数派生类构造函数格式如下:派生类名(派生类构造函数总参数表):基类构造函数(参数表1),子对象名(参数2)派生类新增数据成员实始化7.2.1 继承与派生说明:(1)总参数表包括基类构造函数参数、子对象构造函数参数和派生类构造函数参数。(2)在定义派生类构造函数时参数表1和参数表2是参数名称列表。(3)派生类构造函数的调用顺序:调用基类构造函数。如果存在子对象,调用子对象类的构造函数。调用派生类构造函数。7.2.1 继承与派生例7.2 在例7.1派生类定义的基础上定义派生类S
6、tudent的构造函数。Student:Student(string n,int a,char s,int n2,string b):Person(n,a,s)no=n2;bj=b;7.2.1 继承与派生5.派生类析构函数析构函数和构造函数一样不能被继承,在派生类中定义析构函数与在一般类(无继承关系)中定义的方法相同。派生类中析构函数的调用顺序与构造函数相反。先调用派生类析构函数,如果存在子对象调用子对象类的析构函数,最后调用基类的析构函数。7.3 项目解决 使用面向对象的方法建立师生通讯录管理系统,该系统中存在的实体对象有学生和教师,他们具备一些共同的属性和方法。假设对于学生类命名为Stud
7、ent,教师类命名为Teacher。7.3 项目解决 1.由于Student与Teacher他们都具有姓名、性别等属性,都要完成对这些属性的显示,因此定义Person类做为他们的基类。class Personprivate:string name;int age;char sex;string tel;public:Person(string n,int a,char s,string t);void show_p();7.3 项目解决 2.在Person的基础上增加学生特有的(学号、班级)产生新类Student类,增加教师特有的(职工号、科室)产生新类Teacher类。(1)定义派生类Stu
8、dentclass Student:public Personprivate:int sno;/学号string bj;/班级public:Student(string n,int a,char s,string t,int sn,string b);void show_s();7.3 项目解决 (2)定义派生类Teacherclass Teacher:public Personprivate:int tno;/教职工号string office;/科室public:Teacher(string n,int a,char s,string t,int tn,string of);void sh
9、ow_t();7.3 项目解决 3.定义类的成员方法。Person:Person(string n,int a,char s,string t)name=n;age=a;sex=s;tel=t;7.3 项目解决 3.定义类的成员方法。void Person:show_p()cout姓名t年龄t性别t电话n;coutnametagetsexttelendl;/定义派生类Student的构造函数Student:Student(string n,int a,char s,string t,int sn,string b):Person(n,a,s,t)sno=sn;bj=b;7.3 项目解决 3.定
10、义类的成员方法。void Student:show_s()show_p();cout学号t班级n;coutsnotbjendlendl;/定义派生类Teacher的构造函数Teacher:Teacher(string n,int a,char s,string t,int tn,string of):Person(n,a,s,t)tno=tn;office=of;7.3 项目解决 3.定义类的成员方法。void Teacher:show_t()show_p();cout职工号t科室n;couttnotofficeendl2)个。(2)继承方式同单一继承,有三种:public、protected
展开阅读全文