




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验2 派生类与继承实验课程名:面向对象程序设计(C+)专业班级: 计算机应用技术 学号: 5 姓名: 熊柳强 实验时间: 2012-10-9 实验地点: k4-207 指导教师: 谢晋 一、实验目的和要求(1) 掌握派生类的声明方法和派生类构造函数的定义方法。(2) 掌握不同继承方式下,基类成员在派生类中的访问属性。(3) 掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4) 学习虚基类在解决二义性问题中的作用。二、实验内容1、源程序代码:/test4_1.cpp#include<iostream>using namespace std;cl
2、ass Basepublic:void setx(int i)x=i;int getx()return x;public:int x;class Derived:public Basepublic:void sety(int i)y=i;int gety()return y;void show()cout<<"Base:x="<<x<<endl;public:int y;int main()Derived bb;bb.setx(16);bb.sety(25);bb.show();cout<<"Base:x="
3、;<<bb.x<<endl;cout<<"Derived:y="<<bb.y<<endl;cout<<"Base:x="<<bb.getx()<<endl;cout<<"Derived:y="<<bb.gety()<<endl;return 0;运行结果:(1) 写出程序的运行结果。(2) 按以下要求,对程序进行修改后再调试,指出调试中出错的原因。将基类Base中数据成员x的访问权限改为private时,
4、会出现哪些错误?为什么?在派生类中不能使用基类的数据成员。因为数据成员为私有的。将基类Base中数据成员x的访问权限改为protected时,会出现哪些错误?为什么?主函数中不能访问基类中的保护数据成员。因为数据成员被保护了。在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误?为什么?Setx、x、getx不能访问Base中的共有数据成员。因为派生继承为是由继承。在源程序的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误?为什么?和上面的问题一样。2、 源程序代码:#include<iostream>using n
5、amespace std;class Personpublic:void xinxi()cin>>stu_no;cin>>name;cin>>sex;cin>>age;void show()cout<<"编号:"<<stu_no<<endl;cout<<"姓名:"<<name<<endl;cout<<"性别:"<<sex<<endl;cout<<"年龄:&qu
6、ot;<<age<<endl;private:int stu_no;char name15;char sex3;int age;class Student:public Personpublic:void shuru1()cin>>system;cin>>score;void show1()cout<<"院系:"<<system<<endl;cout<<"成绩:"<<score<<endl;private:float score;cha
7、r system15;class Teacher:public Personpublic:void shuru2()cin>>postion;cin>>part;void show2()cout<<"职称:"<<postion<<endl;cout<<"部门:"<<part<<endl;private:char postion20;char part56;void main()Student A;A.xinxi();A.show();A.shuru1();A.
8、show1();Teacher B;B.xinxi();B.show();B.shuru2();B.show2(); 运行结果:3、源程序代码: (1) 阅读、编辑、编译、调试和运行以下程序,并写出程序的运行结果。/test4_3_1.cpp#include<iostream>#include<string>using namespace std;class MyArraypublic:MyArray(int leng);MyArray();void Input();void Display(string);protected:int *alist;int length
9、;MyArray:MyArray(int leng)if(leng<=0)cout<<"error length"exit(1);alist=new int leng;length=leng;if(alist=NULL)cout<<"assign failure"exit(1);cout<<"MyArray类对象已创建。"<<endl;MyArray:MyArray()delete alist;cout<<"MyArray类对象被撤销。"<&l
10、t;endl;void MyArray:Display(string str)int i;int *p=alist;cout<<str<<length<<"个整数:"for(i=0;i<length;i+,p+)cout<<*p<<" "cout<<endl;void MyArray:Input()cout<<"请键盘输入"<<length<<"个整数:"int i;int *p =alist;for(
11、i=0;i<length;i+,p+)cin>>*p;int main()MyArray a(5);a.Input();a.Display("显示已输入的");return 0; 运行结果:(2) 声明一个类SortArray继承类MyArray,在该类中定义一个函数,具有将输入的整数从小到大进行排序的功能。class SortArray:public MyArraypublic:void Sort();SortArray(int leng):MyArray(leng)cout<<"SortArray类对象已创建。"<
12、<endl;virtual SortArray();SortArray:SortArray()cout<<"SortArray类对象被撤销。"<<endl;void SortArray:Sort()int i,j;int min,temp;int a5;int *p=alist;for(i=0;i<length;i+,p+)ai=*p;for(i=0;i<4;i+)min=i;for(j=i;j<5;j+,p+)if(amin>aj) min=j;temp=ai;ai=amin;amin=temp;p=alist;for
13、(i=0;i<length;i+,p+)*p=ai;for(i=0;i<length;i+,p+)p=alist;int main()SortArray s(5);s.Input();s.Display("显示排序以前的");s.Sort();s.Display("显示排序以后的");return 0;运行结果:(3)声明一个类ReArray继承类MyArray,在该类中定义一个函数,具有将输入的整数进行倒置的功能。class ReArray:public MyArraypublic:void reverse();ReArray(int le
14、ng);virtual ReArray();void ReArray:reverse()int i,temp;int *p=alist;int b5;for(i=0;i<length;i+,p+)bi=*p;for(i=0;i<=length/2;i+,p+)temp=bi;bi=blength-i-1;blength-i-1=temp;p=alist-1;for(i=0;i<length;i+,p+)*p=bi;for(i=0;i<length/2;i+,p+)p=alist-1;ReArray:ReArray()cout<<"ReArray类对
15、象被撤销。"<<endl;ReArray:ReArray(int leng):MyArray(leng)cout<<"ReArray类对象已创建。"<<endl;int main()ReArray s(5);s.Input();s.Display("显示倒置以前的");s.reverse();s.Display("显示倒置以后的");return 0;运行结果:(4) 声明一个类AverArray继承类MyArray,在该类中定义一个函数,具有求输入的整数平均值的功能。class Aver
16、Array:public MyArraypublic:AverArray(int leng);AverArray();double Aver();AverArray:AverArray(int leng):MyArray(leng)cout<<"AverArray类对象已创建。"<<endl;AverArray:AverArray()delete alist;cout<<"AverArray类对象被撤销。"<<endl;double AverArray:Aver()int i,c5;double ave=0
17、,sum=0;int *p=alist;for(i=0;i<length;i+,p+)ci=*p;for(i=0;i<length;i+,p+)sum+=ci;ave=sum/length;p=alist;for(i=0;i<length;i+,p+)*p=ave;for(i=0;i<length;i+,p+)p=alist;return ave;int main()AverArray s(5);s.Input();s.Display("输入的");cout<<"5个数相加后的平均值:"<<s.Aver();print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场人才安全培训试题及答案
- 天气与气候试题及答案
- 智能交通系统未来技术考试及答案
- 注册土木工程师考试关注点试题及答案
- 考试脑力测试题及答案
- 完整的幼儿园数学考题及答案分析
- 整合能力2025年物理试题及答案
- 电商对乡村文化传承的促进作用试题及答案
- 新能源汽车车联网技术发展试题及答案
- 展会策划技巧的试题及答案
- 2024年烟台海阳市卫生健康局所属事业单位招聘工作人员真题
- 2025四川巴中市国有资本运营集团有限公司招聘17人笔试参考题库附带答案详解
- 2025神农科技集团有限公司第一批校园招聘17人(山西)笔试参考题库附带答案详解
- (快手、抖音、淘宝)主播兼职合同10篇
- 砍木伐木合同协议范本
- 延边大学教师岗位招聘考试真题2024
- 前厅服务与管理课件 处理客人投诉
- (二模)咸阳市2025年高三高考模拟检测(二)物理试卷(含答案)
- 科举制度的演变及认识 论文
- (2025)汉字听写大会竞赛题库(含答案)
- 20类重点场所火灾防范指导手册
评论
0/150
提交评论