- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多态补充案例
一、编写程序,计算汽车运行的时间。首先建立基类car,其中使用数据成员distance存储两点间的距离。假定距离以英里计算,速度为每小时80英里,使用虚函数travel_time()计算并显示通过这段距离的时间。在派生类truck中,假定距离以千米计算,速度为每小时120千米,使用虚函数travel_time()计算并显示通过这段距离的时间1#includeiostreamusing namespace std;const double car_speed=80;//基类速度(以英里/小时计量)const double truck_speed=120;//派生类速度(以千米/小时计量)class car{private:double distance;//两点的距离用英里计数double t;//运行时间public:car(double dis,double t0=0):distance(dis),t(t0){}car(){}~car(){}virtual void travel_time(){t=distance/car_speed;coutcar运行时间:t小时endl;}};class truck:public car{private:double distance,t;public:truck(double dis1,double dis2=0,double t1=0):car(dis1),distance(dis2),t(t1){}~truck(){}void travel_time(){t=distance/truck_speed;couttruck运行时间:t小时endl;}};void fun(car *p){p-travel_time();}int main(){car c(160);fun(c);truck t(0,360);fun(t);return 0;}二、编写程序, 分别用成员函数和友元函数重载运输符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。2#includeiostreamusing namespace std;class Matrix{public:int matrix[3][3];Matrix(int m[][3]){for(int i=0;i3;i++)for(int j=0;j3;j++)this-matrix[i][j]=m[i][j];}Matrix(){}Matrix operator=(Matrix m){for(int i=0;i3;i++)for(int j=0;j3;j++)this-matrix[i][j]=m.matrix[i][j];return *this;}Matrix operator+(Matrix m){for(int i=0;i3;i++)for(int j=0;j3;j++)matrix[i][j]=matrix[i][j]+m.matrix[i][j];return *this;}Matrix operator-(Matrix m){for(int i=0;i3;i++)for(int j=0;j3;j++)matrix[i][j]=m.matrix[i][j]-this-matrix[i][j];return *this;}void display(){for(int i=0;i3;i++){for(int j=0;j3;j++)coutthis-matrix[i][j] ;coutendl;}}};void main(){int a[3][3]={{1,1,1},{1,1,1},{1,1,1}};Matrix m(a);cout初始矩阵为:endl;m.display();int a1[3][3];cout\n请输入一个矩阵(3*3):endl;for(int i=0;i3;i++)for(int j=0;j3;j++)cina1[i][j];Matrix m1(a1);Matrix m2;m2=m+m1;cout\n相加后的矩阵为:endl;m2.display();m2=m1-m;cout\n相减后的矩阵为:endl;m2.display();}三、为日期类(年月日)重载“+”运算符,实现在某一个日期上加一个天数。如2012年12月9日加上49天则为2013年1月27日。3//本题的精华就是在处理日期相加的算法上面(见注释(1)(2))#includeiostreamusing namespace std;class Date{private:int year,month,day;static int a[2][13];//a[0]储存平年每月的天数;a[1]储存闰年每月的天
您可能关注的文档
- 必修二unit4复习修改.doc
- c++万年历及公历农历转换源代码1.doc
- 公开课教案--外研版英语选修六 Module 6 War and Peace.doc
- MEA英文MSDS.docx
- 精读5第二版课文翻译.docx
- 2013高考数学教案和学案(有答案)-------第4章__学案18.doc
- 牛津高中英语 wordlist mode 5.doc
- 2011欧洲欧洲妊娠高血压疾病指南.doc
- 2009年高一新生入学考试.doc
- book 3-6 重点词汇.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)