已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 多态程序设计一、 实验目的:理解运算符重载的概念和实质,掌握运算符重载函数的定义方法,掌握运算符重载为类的成员函数和友元函数的方法。掌握虚函数的定义方法及其在实现多态性中的应用,理解静态连编和动态链编的区别。二、 实验时间:2019/12/27三、 实验地点:四、 实验内容:1已知基类:class Base public : virtual void I_am()cout”Base”endl; 要求:(1)从Base类中派生出两个类,分别定义I_am()函数,实现输出自己类的名字。(2)主函数中创建者3个类的对象来调用I_am()函数,再利用Base的指针数组通过循环语句来调用这3个对象的I_am()函数。/ 1.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include#includeusing namespace std;class basepublic:base()virtual void i_am()couti am baseendl;class base_x:public basepublic:base_x()void i_am()couti am base_xendl;class base_y:public basepublic:base_y()void i_am()couti am base_yendl;int main() base b; base_x b_x; base_y b_y; base *a3=&b,&b_x,&b_y; for(int i=0;ii_am();return 0; 2. 编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。/ 2.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include#includeusing namespace std;const double PI=3.1415926;class geometrypublic: virtual void surface() const=0;virtual void volume() const=0;class square:public geometryprivate:float a,b,c;public:square(float a1,float b1,float c1)a=a1;b=b1;c=c1;void surface()constcout该正方形的表面积为:2*(a*b+b*c+c*a)endl;void volume()constcout该正方形的体积为:a*b*cendl;class cylinder:public geometryprivate:float r,h;public:cylinder(float r1,float h1) r=r1; h=h1;void surface()constcout该圆柱体的表面积为:2*PI*r*(r+h)endl;void volume()constcout该圆柱体的体积为:PI*r*r*hendl;class globe:public geometryprivate:float r;public:globe(float r1)r=r1;void surface()constcout该球体的表面积为:4*PI*r*rendl;void volume()const cout该球体的体积为:4*PI*r*r*r/3endl;int main()square s(3,4,5);cylinder c(4.5,6);globe g(4);geometry *a3=&s,&c,&g;for(int i=0;isurface(); ai-volume();return 0;3. 设计字符串类String,完成以下功能: (1)使用+运算符实现两个字符串的连接功能。 (2)使用=运算符实现字符串的复制功能。 (3)使用=运算符判断两个字符串是否相等功能。 (4)计算字符串长度的功能。/ 3.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include#includeusing namespace std;class Stringprivate:char *str;public:String(char *str1=) str=new charstrlen(str1)+1; strcpy(str,str1);String() delete str;void display()coutstr:strstr=new charstrlen(str1.str)+strlen(str2.str)+1;strcpy(s-str,str1.str);strcat(s-str,str2.str);return *s; String & operator=(String &str1) if(strcmp(str1.str,str)=0) return str1; else str=new charstrlen(str1.str)+1; strcpy(str,str1.str); return *this ; friend bool operator=(String &str1,String &str2) if(strcmp(str1.str,str2.str)=0) return true; else return false; friend int strlen_S(String &str1) int i=0; int len=0; while(str1.stri!=0) len=len+1; i+; return len; /return strlen(str1.str); ;int main() String s(2323); String s2(2323); String s3; s.display(); s2.display(); if(s=s2) cout两字符串不相等,后者长度为strlen_S(s2)endl; else cout两字符串相等,前者长度为strlen_S(s)endl; s=s+s2; s3=s; s=s; s.display(); s3.display(); s2.display(); if(s=s2) cout两字符串不相等,后者长度为strlen_S(s2)endl; else cout两字符串相等,前者长度为strlen_S(s)endl;return 0; 五、实验要求: 在上机前写出全部源程序; 六、实验结果分析:七、实验心得体会及问题反馈: 此次实验还是比较简单,课上完有点时间了,知识点清晰度不够,重温一下,就可以很简单的完成这个实验了,实验有3题,前两题没有什么技术含
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省部分市州2022-2023学年高二下学期7月期末联合调研考试物理试题含解析
- 北师大四年级数学上册各单元知识点
- 下年度的工作计划
- 上学期大二班德育工作计划
- 2024年激光扫瞄显微镜项目建议书
- DB45-T 2735-2023 沃柑贮藏保鲜剂使用规范
- 2024年浙江湖州丽水衢州二模高考英语卷试题(含答案)
- 舌尖上的健康食品营养与安全智慧树知到期末考试答案章节答案2024年青岛工学院
- 社会医学智慧树知到期末考试答案章节答案2024年滨州医学院
- 审计学智慧树知到期末考试答案章节答案2024年安徽财经大学
- MOOC 通信原理-国防科技大学 中国大学慕课答案
- 第四单元《比例》教材解读-课件新人教版六年级下册
- FZT 92082-2017 非织造布喷丝板
- 2024年河北省张家口市万全区中考数学一模试卷(含解析)
- 淀粉肠塌房折射食品公共安全隐患与如何整治
- 临床医学检验临床微生物:临床医学检验临床微生物考试题库一
- 市场营销策划(本)-形考任务四(案例分析 )-国开(CQ)-参考资料
- 2024年北京能源集团招聘笔试参考题库附带答案详解
- 科研思路与方法智慧树知到期末考试答案2024年
- 第45课 《李寄》 公开课一等奖创新教案(表格式)《大学语文(第四版)》(高职版)
- 教科版小学科学二年级上册《科学阅读》教案教学设计
评论
0/150
提交评论