免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 多态程序设计一、 实验目的:理解运算符重载的概念和实质,掌握运算符重载函数的定义方法,掌握运算符重载为类的成员函数和友元函数的方法。掌握虚函数的定义方法及其在实现多态性中的应用,理解静态连编和动态链编的区别。二、 实验时间:三、 实验地点:四、 实验内容:1已知基类:class Base public : virtual void I_am()cout”Base”endl; 要求:(1)从Base类中派生出两个类,分别定义I_am()函数,实现输出自己类的名字。(2)主函数中创建者3个类的对象来调用I_am()函数,再利用Base的指针数组通过循环语句来调用这3个对象的I_am()函数。#include#includeclass baseprotected:char * str;public:base (char name)str=new char sizeof(name)+1;strcpy(str,name);virtual void I_am()coutBaseendl;base()deletestr;class dog:public basepublic:dog(char *na):base(na) void I_am()coutI_amstrendl;class cat:public basepublic:cat(char *na):base(na) void I_am()coutI_amstrendl;int main()base a(1);a.I_am();dog b(2);b.I_am(); cat c(3);c.I_am();base * dongwu3; dongwu0=new base(1);dongwu1=new dog(2);dongwu2=new cat(3);for(int i=0;iI_am();return 0; 2. 编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。#include#define PI 3.14259 /const PI=3.14159;class base public:virtual float area()=0;virtual float volumn()=0;class yuanzhuti:public baseprivate:int m,n;public:yuanzhuti(int x=0,int y=0):m(x),n(y)float area()return PI*m*m+2*PI*m*n ; float volumn()return PI*m*m*n; ;class qiuti:public baseprivate:int k;public:qiuti(int x=0):k(x)float area()return 4*PI*k*k; float volumn()return 4/3*PI*k*k*k; ;class zfti:public baseprivate:int b;public:zfti(int x=0):b(x)float area()return 6*b*b; float volumn()return b*b*b; ;int main ()int m,n,k,t;cout请输入圆柱体的底面半径和高mn;yuanzhuti a(m,n);cout圆柱体的面积和体积如下:endl;cout面积是a.area()体积是a.volumn()endl;cout请输入球体的半径k;qiuti b(k);cout球体的面积和体积如下:endl;cout面积是b.area()体积是b.volumn()endl;cout请输入正方形的边长t;zfti c(t);cout圆柱体的面积和体积如下:endl;cout面积是c.area()体积是c.volumn()endl;return 0; 3. 设计字符串类String,完成以下功能: (1)使用+运算符实现两个字符串的连接功能。 (2)使用=运算符实现字符串的复制功能。 (3)使用=运算符判断两个字符串是否相等功能。 (4)计算字符串长度的功能。#include#includeclass string private: char *str; public: string(char *s= )str=new charstrlen(s)+1;strcpy(str,s); string(string &ss)strcpy(str,ss.str); string()delete str; string & operator =(string &s3); friend string &operator+( string &s1,string &s2); friend bool operator = (string &s5,string &s6); friend int changdu(string &s); void print()coutstrstr=new charstrlen(s1.str)+strlen(s2.str)+1;strcpy(ss-str,s1.str); strcat(ss-str,s2.str);return *ss; /*string & operator+( string &s1,string &s2) string ss;ss.str=new charstrlen(s1.str)+strlen(s2.str)+1;strcpy(ss.str,s1.str); strcat(ss.str,s2.str);return ss;*/string &string:operator = (string &s3 )if(this=&s3) return * this;deletestr;str=new charstrlen(s3.str)+1;strcpy( str,s3.str); return * this; bool operator=(string &s5,string &s6) if(strcmp(s5.str,s6.str)=0) cout字符串s5.str相等于s6.strendl; return true; else cout字符串s5.str不相等于s6.strendl; return false; int changdu(string &s) cout字符串长度为strlen(s.str)+1endl; return 0; void main()int m; string ss;string s1(anhhh); string s2(mmmmm); string s3(anhh); string s4(m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工培训与发展计划制定
- 护理部主任护理设备管理方案
- 2025年诸暨市教育局直属学校招聘真题
- 汝州市公费师范生招聘真题2025
- 广东养鸡场员工管理与激励机制
- 干部档案管理员档案工作队伍建设方案
- 2025山东枣庄山亭区青年见习招募6人(第六批)笔试备考题库附答案解析
- 2025湖北襄阳高新城乡基础设施建设维护有限公司招聘拟聘考试模拟卷附答案解析
- 2025湖南常德市临澧县卫生系统公开选调工作人员8人考试历年真题汇编附答案解析
- 2025江西移动10086客服团队招聘30人备考题库带答案解析
- 污水厂管网运行管理方案
- 小区开放对道路的影响
- (完整word版)高中英语3500词汇表
- 水利工程概论练习题+答案
- 建筑施工安全检查评分汇总表及评分表2011版自动计算
- 设计事理学方法论-课件
- 纤维增强混凝土
- 部编版九年级语文下册古诗文复习课件
- 世界著名童话故事英文绘本故事丑小鸭
- GB/T 224-2019钢的脱碳层深度测定法
- 涉密文件借阅登记表
评论
0/150
提交评论