付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验四派生类与继承【实验类型】验证性实验【实验课时】2 学时【实验目的】(1)理解类的继承的概念,能够定义和使用类的继承关系。(2)掌握派生类的声明与定义方法。(3)熟悉公有派生和私有派生的访问特性。(4)学习虚基类在解决二义性问题中的作用。【实验环境】硬件:计算机软件:Microsoft Visual C+ 6.0【实验内容】1、按要求阅读、编写、调试和运行以下程序。(1)实验内容1定义一个基类 MyArray,基类中可以存放一组整数。class MyArraypublic:MyArray(i nt len g);MyArray();void In put();void Display。;p
2、rotected:long int *alist;/指向动态申请的一组空间int length;/整数的个数基类中有构造函数、析构函数、输入数据和输出数据的函数。2定义一个类 SortArray 继承自 MyArray,在该类中定义函数实现排序功能。3定义一个类 ReArray 继承自 MyArray,在该类中定义函数实现逆转功能。4定义一个类 AverArray 继承自 MyArray,在该类中定义函数 Aver 求解整数的平均值。5定义 NewArray 类,同时继承了 SortArray, ReArray 和 AverArray,使得 NewArray 类的对象同时具有排序、逆转、和求平
3、均值的功能。在继承的过程中声明为虚基类,体会虚基类在解决二义性问题中的作用。(2)实验程序(参考)程序如下:#i nclude iostream.h#in clude process.hclass MyArraypublic:MyArray(i nt le ng);MyArray();void In put();void Display。;protected:long int *alist;/指向动态申请的一组空间int length;/整数的个数;MyArray:MyArray(i nt leng)len gth=le ng;alist=new long in tle ngth;if(ali
4、st=NULL)cout对不起,创建失败。请重试。;exit(1);MyArray:MyArray()delete alist;cout数组被清空。endl;void MyArray:Display() / 显示数组内容int i;long int *p=alist;for (i=0;ile ngth;i+,p+)cout *p;void MyArray:Input()/ 从键盘若干整数cout请输入:length 个整数:;int i;long int *p=alist;for(i=0;ile ngth;i+,p+)ci n*p;class SortArray: virtual public
5、 MyArrayprivate:int len;long int *sp;public:SortArray(i nt le ng):MyArray(le ng)Ien=leng;Sort();;void Sort() sp=new long in tle n; long int q;sp=alist;for(i nt i=0;ile n; i+) for(i nt j=O;j*(sp+j+1)q=*(sp+j);*(sp+j)=*(sp+j+1); *(sp+j+1)=q;;class ReArray: virtual public MyArray/这里是虚基类,public:void Rev
6、erse()rp=new long in tle n;long int q;rp=alist;for(i nt i=0;ile n/2;i+)q=* (rp+i);*(rp+i)=*(rp+le n-i-1); *(rp+le n_i_1)=q;ReArray(i nt len g):MyArray(le ng) len=leng;Reverse();private:int len; long int *rp;;class AverArray:virtual public MyArray/这里是虚基类,public:double Aver()ap=new long in tle n;doubl
7、e q=0;ap=alist;for(i nt i=0;ile n;i+)q=q+*ap;ap+;q=q/le n;return q;AverArray(i nt le ng):MyArray(le ng)len=leng;private:in t le n;long int *ap;class NewArray:public ReArray,public SortArray,public AverArray public:NewArray(i nt len g);NewArray();NewArray:NewArray(i ntle ng):MyArray(le ng),SortArray(
8、le ng),ReArray(le ng),AverArray(le ng)coutn 新数组正在创建。n;NewArray:NewArray()coutn 新数组已被清空。n;void mai n()char b; int leng; docout请输入数组长度: le ng;while(le ng=0) cout le ng; coutn 开始:n; NewArray n (le ng);n.ln put();coutn 您输入的数组为:e ndl;n.Display();/ 显示数组n.Reverse。;/ 显示逆序coutn 倒序数组为:e ndl;n.Display。;/显示逆转以前
9、的情况coutn 平均值是: n. Aver()e ndl;/ 求平均值 n.Sort();/ 排序coutn 排序后(从小到大)数组为: e ndl;n.Display。;/显示排序以后的情况coutnA继续 Q退出 b;while(b=A|b=a);执行结果为:2、编写一个学生和教师数据输入和显示程序。(1) 实验内容编写学生和教师数据输入和显示程序,学生数据有编号、班号和成绩,教师数据有编号、职称和部门。要求将编号、姓名输入和显示设计成一个类person ,并作为学生数据操作类 student 和教师数据操作类 teacher 的基类。(2) 实验程序(参考)#in cludeclass
10、 pers onprotected: int m;char A20; char *n ame;public:void in put()cout编号:;cinm;cout A;name=&A0;void display。cout编号:mendl; cout : nameendl;class stude nt:public pers onprotected:int class num, mark;public:void in put1()cout输入一个学生数据:endl;in put();cout class num;cout mark;void display1()cout显示一个学生
11、的数据 :endl; display();cout班号:classnumendl; cout成绩:markendl;class teacher: public pers onprotected:char zhiche ng20,bume n20;char *p;public:void in put2()cout显示一个老师的数据 :endl;in put(); cout zhiche ng; cout bume n;void display2()cout显示一个老师的数据 :endl; display();p=& zhiche ng0;cout职称:pendl;p=&bume
12、n 0;cout部门:pendl;void mai n()stude nt S;teacher T;S. i nput1();T. i nput2();S. display1();T. display2();【实验提示】继承是面向对象程序设计的一个重要特性,它允许在已有类的基础上创建新的类,新类可以从一个或多个既有类中继承函数和数据,而且可以重新定义或加进新的数据和函数,从而形成类的层次或等级。 实验 1 中着重时在这方面进行练习,除了需要熟练掌握派生类的声明和定义,还需要灵活运用公有派生和私有派生来解决实际问题。虚基类用于想把公共的基类只产生一个拷贝时,它的初始化与一般的多继承的初始化在语法上是一样的,但是构造函数的调用顺序不同。C+编程中派生类可以被基类指针引用,这叫向后兼容,可以提高程序的可扩充性和可维护性。以前写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健身消费体验优化-洞察与解读
- 全球监管框架比较-洞察与解读
- 残疾人就业支持-洞察与解读
- 生产现场落实一岗双责制度
- 物业公司保洁制度
- 烟花爆竹事故报告制度
- 单位电话管理制度
- 东莞体制内请假制度
- 钢管货场管理制度
- 公司生产底料管理制度
- 医学人文关怀培训课件
- 《传感器与检测技术》课件-热电阻测温传感器
- 2025年小学三年级语文单元测试模拟卷(含答案)
- 2026年汉中职业技术学院单招职业技能测试必刷测试卷必考题
- 中国的气候第三课时课件-八年级地理上学期湘教版
- 2025年国考航空运输岗结构化面试情景模拟题经典案例30例
- M9000会议管理系统 操作指导
- 突发性耳聋病例分析与诊疗
- 2025年新高考1卷(新课标Ⅰ卷)英语试卷(含答案解析)+听力音频+听力原文
- 三年级语文童话、寓言类文章阅读专项训练(含答案-适合各版本教材)
- 语文七年级下字帖打印版
评论
0/150
提交评论