多态程序设计_第1页
多态程序设计_第2页
多态程序设计_第3页
多态程序设计_第4页
多态程序设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五多态程序设计一、实验目的:理解运算符重载的概念和实质,掌握运算符重载函数的定义方法,掌握 运算符重载为类的成员函数和友元函数的方法。掌握虚函数的定义方法及其在实现多态性中的应用,理解静态连编和动 态链编的区别。二、实验时间:2012/12/5三、实验地点:四、实验内容:1 已知基类:class Basepublic : virtual void l_am()cout” Base” endl; ; 一要求:(1) 从Base类中派生出两个类,分别定义I_am()函数,实现输出自己 类的名字。(2) 主函数中创建者3个类的对象来调用I_am()函数,再利用Base的 指针数组通过循环语句来调

2、用这 3个对象的I_am()函数。C:win1 base_v拮按任意键继敛/ 1.cpp :定义控制台应用程序的入口点/#include stdafx.h#include #include using namespace std;class basepublic :base()virtual void i_am() cout i am base endl;class base_x: public base public :base_x()void i_am()coutvv i am base_x endl; ;class base_y: public base public :base_y()

3、void i_am()coutvv i am base_y endl; ;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. 编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实 现。7J方旺、F-壬 i- II m h H * k- s IL. iy IL. 、1 b N H0I2S1西 C:wind3assYiternjl ,:vd.eeEqur t 1 C, 4,5): 醉iadr (4.5, &): glot* 宅4:绊 am try *4

4、 3=徹 畏s td:for (int_5urfic ();/ 2.cpp :定义控制台应用程序的入口点/#include stdafx.h#include #include using 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

5、 b1, float c1)a=a1;b=b1;c=c1;void surface() const cout 该正方形的表面积为 : 2*(a*b+b*c+c*a)endl; void volume() const cout 该正方形的体积为 : a*b*cendl;class cylinder: public geometryprivate :float r,h;public :cylinder( float r1, float h1)r=r1;h=h1;void surface() const cout 该圆柱体的表面积为 : 2*PI*r*(r+h)endl;void volume()

6、const cout 该圆柱体的体积为 : PI*r*r*hendl;class globe: public geometryprivate :float r;public :globe( float r1)r=r1;void surface。 const cout该球体的表面积为:vsurface();ai-volume();return 0;3. 设计字符串类String,完成以下功能:(1) 使用+运算符实现两个字符串的连接功能。(2) 使用=运算符实现字符串的复制功能。(3) 使用=运算符判断两个字符串是否相等功能。(4) 计算字符串长度的功能。归1塑 I 乂站 tr i n g w?

7、;h splty I J ;s2. AitpliyO;12)zW?切至Y弔老后者玄長先金打“7(旳;皿l代两羯础謬前者长震対7“(4 辺:s3=i a5=S.5. ii splty 0;dLihpJL舒()J曲 dL0ic(s=s2)Ml认“咤苻串不叩巻5老茨官夬CEtdQCendl; tlst;/ 3.cpp : 定义控制台应用程序的入口点/#include stdafx.h #include #include using namespace std;class String private : char *str;public :String( char *str1= ) str= new

8、 char strlen(str1)+1; strcpy(str,str1); String() delete str;void display() cout str: strstr= new char strlen(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 char strlen(str1

9、.str)+1; strcpy(str,str1.str); return * this ;friend bool operator =(String &str1,String &str2) if (strcmp(str1.str,str2.str)=0) return true ;:0 ujn;aj!|PU9(s)sU9|J|su1 昜申宙谢者脛,, inoo3S|3!|PU9(2S)S_U9|4S u圍齐皋gr 昜电立宙谢者豐“ inoo(乙s=s) lOAeidsjpss !()Xe|dsipS !()Xe|dsips !s=s :S=S 2s+s=s!|pu9(s)s_U9|4SH1

10、昜电宙谢者豐“inoo3S|3!|PU9(2S)S_U9|4S u圍齐皋gr 昜电立宙谢者豐“ inoo(乙s=s) lOAeidsjpss !()Xe|dsips 0s 6uu;s!( 乙乙 )2S 6uu;s !( 乙乙 )s 6uu;s()uqw m!(J;S |,4S)U9|4S ujn;sj/:U3| ujn;sj!+!1+UO|=UO|(.0.=j!4S N;s) 9|!i|M:0=U9| M:0=! M(N;s 6u!4S)S_U9|J;s m pusuj! os|Ej ujn;sj 8S|S 五、实验要求: 在上机前写出全部源程序六、实验结果分析:七、实验心得体会及问题反馈:此次实验还是比较简单 ,课上完有点时间了 , 知识点清晰度不够 ,重温 一下, 就可以很简单的完成这个实验了 , 实验有 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论