欢迎来到天天文库
浏览记录
ID:38698799
大小:69.50 KB
页数:8页
时间:2019-06-17
《实验四 继承与派生》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四 派生类与继承【实验类型】验证性实验【实验课时】2学时【实验目的】(1)理解类的继承的概念,能够定义和使用类的继承关系。(2)掌握派生类的声明与定义方法。(3)熟悉公有派生和私有派生的访问特性。(4)学习虚基类在解决二义性问题中的作用。【实验环境】硬件:计算机软件:MicrosoftVisualC++6.0【实验内容】1、按要求阅读、编写、调试和运行以下程序。(1)实验内容①定义一个基类MyArray,基类中可以存放一组整数。classMyArray{public: MyArray(int
2、leng); ~MyArray(); voidInput(); voidDisplay();protected:longint*alist; //指向动态申请的一组空间intlength;}; //整数的个数基类中有构造函数、析构函数、输入数据和输出数据的函数。②定义一个类SortArray继承自MyArray,在该类中定义函数实现排序功能。③定义一个类ReArray继承自MyArray,在该类中定义函数实现逆转功能。④定义一个类AverArray继承自MyArray,在该类中定义
3、函数Aver求解整数的平均值。⑤定义NewArray类,同时继承了SortArray,ReArray和AverArray,使得NewArray类的对象同时具有排序、逆转、和求平均值的功能。在继承的过程中声明为虚基类,体会虚基类在解决二义性问题中的作用。(2)实验程序(参考)程序如下:#include"iostream.h"#include"process.h"classMyArray{public: MyArray(intleng); ~MyArray(); voidInput();
4、 voidDisplay();protected: longint*alist; //指向动态申请的一组空间 intlength; //整数的个数};MyArray::MyArray(intleng){ length=leng; alist=newlongint[length]; if(alist==NULL) { cout<<"对不起,创建失败。请重试。";exit(1); }}MyArray::~MyArray(){ delete[
5、]alist; cout<<"数组被清空。"<6、++) cin>>*p;}classSortArray:virtualpublicMyArray{private: intlen; longint*sp;public: SortArray(intleng):MyArray(leng) { len=leng; Sort(); }; voidSort() { sp=newlongint[len]; longintq; sp=alist; for(inti=0;i7、;i++){ for(intj=0;j*(sp+j+1)) { q=*(sp+j); *(sp+j)=*(sp+j+1); *(sp+j+1)=q; }}} }}; classReArray:virtualpublicMyArray{ //这里是虚基类,public: voidReverse() { rp=newlongint[l8、en]; longintq; rp=alist; for(inti=0;i
6、++) cin>>*p;}classSortArray:virtualpublicMyArray{private: intlen; longint*sp;public: SortArray(intleng):MyArray(leng) { len=leng; Sort(); }; voidSort() { sp=newlongint[len]; longintq; sp=alist; for(inti=0;i7、;i++){ for(intj=0;j*(sp+j+1)) { q=*(sp+j); *(sp+j)=*(sp+j+1); *(sp+j+1)=q; }}} }}; classReArray:virtualpublicMyArray{ //这里是虚基类,public: voidReverse() { rp=newlongint[l8、en]; longintq; rp=alist; for(inti=0;i
7、;i++){ for(intj=0;j*(sp+j+1)) { q=*(sp+j); *(sp+j)=*(sp+j+1); *(sp+j+1)=q; }}} }}; classReArray:virtualpublicMyArray{ //这里是虚基类,public: voidReverse() { rp=newlongint[l
8、en]; longintq; rp=alist; for(inti=0;i
此文档下载收益归作者所有