实验2-派生类与继承.doc

上传人:go****e 文档编号:131188611 上传时间:2020-05-05 格式:DOC 页数:10 大小:765.50KB
返回 下载 相关 举报
实验2-派生类与继承.doc_第1页
第1页 / 共10页
实验2-派生类与继承.doc_第2页
第2页 / 共10页
实验2-派生类与继承.doc_第3页
第3页 / 共10页
实验2-派生类与继承.doc_第4页
第4页 / 共10页
实验2-派生类与继承.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《实验2-派生类与继承.doc》由会员分享,可在线阅读,更多相关《实验2-派生类与继承.doc(10页珍藏版)》请在金锄头文库上搜索。

1、实验2 派生类与继承实验课程名:面向对象程序设计(C+)专业班级: 计算机应用技术 学号: 201130410115 姓名: 熊柳强 实验时间: 2012-10-9 实验地点: k4-207 指导教师: 谢晋 一、实验目的和要求(1) 掌握派生类的声明方法和派生类构造函数的定义方法。(2) 掌握不同继承方式下,基类成员在派生类中的访问属性。(3) 掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4) 学习虚基类在解决二义性问题中的作用。二、实验内容1、源程序代码:/test4_1.cpp#includeusing namespace std;class Basepublic:voi

2、d 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()coutBase:x=xendl;public:int y;int main()Derived bb;bb.setx(16);bb.sety(25);bb.show();coutBase:x=bb.xendl;coutDerived:y=bb.yendl;coutBase:x=bb.getx()endl;coutDerived:y=bb

3、.gety()endl;return 0;运行结果:(1) 写出程序的运行结果。(2) 按以下要求,对程序进行修改后再调试,指出调试中出错的原因。将基类Base中数据成员x的访问权限改为private时,会出现哪些错误?为什么?在派生类中不能使用基类的数据成员。因为数据成员为私有的。将基类Base中数据成员x的访问权限改为protected时,会出现哪些错误?为什么?主函数中不能访问基类中的保护数据成员。因为数据成员被保护了。在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误?为什么?Setx、x、getx不能访问Base中的共有数据成员。因为派生继承为是由

4、继承。在源程序的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误?为什么?和上面的问题一样。2、 源程序代码:#includeusing namespace std;class Personpublic:void xinxi()cinstu_no;cinname;cinsex;cinage;void show()cout编号:stu_noendl;cout姓名:nameendl;cout性别:sexendl;cout年龄:agesystem;cinscore;void show1()cout院系:systemendl;cout成绩:scorepostion;ci

5、npart;void show2()cout职称:postionendl;cout部门:partendl;private:char postion20;char part56;void main()Student A;A.xinxi();A.show();A.shuru1();A.show1();Teacher B;B.xinxi();B.show();B.shuru2();B.show2(); 运行结果:3、源程序代码: (1) 阅读、编辑、编译、调试和运行以下程序,并写出程序的运行结果。/test4_3_1.cpp#include#includeusing namespace std;cl

6、ass MyArraypublic:MyArray(int leng);MyArray();void Input();void Display(string);protected:int *alist;int length;MyArray:MyArray(int leng)if(leng=0)couterror length;exit(1);alist=new int leng;length=leng;if(alist=NULL)coutassign failure;exit(1);coutMyArray类对象已创建。endl;MyArray:MyArray()delete alist;cou

7、tMyArray类对象被撤销。endl;void MyArray:Display(string str)int i;int *p=alist;coutstrlength个整数:;for(i=0;ilength;i+,p+)cout*p ;coutendl;void MyArray:Input()cout请键盘输入length个整数:;int i;int *p =alist;for(i=0;i*p;int main()MyArray a(5);a.Input();a.Display(显示已输入的);return 0; 运行结果:(2) 声明一个类SortArray继承类MyArray,在该类中定

8、义一个函数,具有将输入的整数从小到大进行排序的功能。class SortArray:public MyArraypublic:void Sort();SortArray(int leng):MyArray(leng)coutSortArray类对象已创建。endl;virtual SortArray();SortArray:SortArray()coutSortArray类对象被撤销。endl;void SortArray:Sort()int i,j;int min,temp;int a5;int *p=alist;for(i=0;ilength;i+,p+)ai=*p;for(i=0;i4;

9、i+)min=i;for(j=i;jaj) min=j;temp=ai;ai=amin;amin=temp;p=alist;for(i=0;ilength;i+,p+)*p=ai;for(i=0;ilength;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 MyArraypub

10、lic:void reverse();ReArray(int leng);virtual ReArray();void ReArray:reverse()int i,temp;int *p=alist;int b5;for(i=0;ilength;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;ilength;i+,p+)*p=bi;for(i=0;ilength/2;i+,p+)p=alist-1;ReArray:ReArray()coutReArra

11、y类对象被撤销。endl;ReArray:ReArray(int leng):MyArray(leng)coutReArray类对象已创建。endl;int main()ReArray s(5);s.Input();s.Display(显示倒置以前的);s.reverse();s.Display(显示倒置以后的);return 0;运行结果:(4) 声明一个类AverArray继承类MyArray,在该类中定义一个函数,具有求输入的整数平均值的功能。class AverArray:public MyArraypublic:AverArray(int leng);AverArray();double Aver();AverArray:AverArray(int leng):MyArray(leng)coutAverArray类对象已创建。endl;AverArray:AverArray()delete alist;coutAverAr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号