c++ 实验五 多态和虚函数、运算符重载

c++ 实验五 多态和虚函数、运算符重载

ID:12571641

大小:259.50 KB

页数:7页

时间:2018-07-17

c++ 实验五  多态和虚函数、运算符重载_第1页
c++ 实验五  多态和虚函数、运算符重载_第2页
c++ 实验五  多态和虚函数、运算符重载_第3页
c++ 实验五  多态和虚函数、运算符重载_第4页
c++ 实验五  多态和虚函数、运算符重载_第5页
资源描述:

《c++ 实验五 多态和虚函数、运算符重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第组.多态和虚函数、运算符重载一、实验目的1.理解虚函数的特性;2.理解纯虚函数和抽象类的特性;3.掌握用虚函数实现运行时的多态性和编写通用程序的方法;4.掌握用成员函数和友元函数重修运算符的方法。二、内容与设计思想上机实践内容:1.定义一个抽象类CShape,包含纯虚函数Area()(用来计算面积)和SetData()(用来重设形状大小)。然后派生出三角形CTriangle类、矩形CRect类、圆CCircle类,分别求其面积。最后定义一个CArea类,计算这几个形状的面积之和,个形状的数据通过CArea类构造函数或成员函数来设置。编程一个完整的程序。2.定义一个复数类CCom

2、plex,通过重载运算符“*”和“/”,直接实现两个复数之间的乘除运算。编写一个完整的程序(包括测试运算符的程序部分)。运算符“*”用成员函数实现重载,而运算符“/”用友元函数实现重载。提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+ad+bc)i;两复数相除的计算公式为:(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i;三、使用环境操作系统:WindownsXPC++环境:VisualC++6.0四、核心代码及调试过程#includeclassCShape{public:vir

3、tualfloatArea()=0;virtualvoidSetData(floatf1,floatf2)=0;};classCTriangle:publicCShape{public:CTriangle(floath=0,floatw=0)6{H=h;W=w;}floatArea(){return(float)(H*W*0.5);}voidSetData(floatf1,floatf2){H=f1;W=f2;}private:floatH,W;};classCRect:publicCShape{public:CRect(floath=0,floatw=0){H=h;W=w;}f

4、loatArea(){return(float)(H*W);}voidSetData(floatf1,floatf2){H=f1;W=f2;}private:floatH,W;};classCCircle:publicCShape{public:6CCircle(floatr=0){R=r;}floatArea(){return(float)(3.14159265*R*R);}voidSetData(floatr,float){R=r;}private:floatR;};classCArea{public:CArea(floattriWidth,floattriHeight,fl

5、oatrcWidth,floatrcHeight,floatr){ppShape=newCShape*[3];ppShape[0]=newCTriangle(triWidth,triHeight);ppShape[1]=newCRect(rcWidth,rcHeight);ppShape[2]=newCCircle(r);}~CArea(){for(inti=0;i<3;i++)deleteppShape[i];delete[]ppShape;}voidSetShapeData(intn,floatf1,floatf2=0){6if((n>2)

6、

7、(n<0))return;ppS

8、hape[n]->SetData(f1,f2);}voidCalAndPrint(void){floatfSum=0.0;char*str[3]={"Triangle","Rectangle","Circle"};for(inti=0;i<3;i++){floatarea=ppShape[i]->Area();cout<

9、3,4,3.5);a.CalAndPrint();a.SetShapeData(0,10,15);a.CalAndPrint();a.SetShapeData(4,11);a.CalAndPrint();a.SetShapeData(1,3,5);6a.CalAndPrint();}#includeusingnamespacestd;classComplex{floatReal,Image;public:Complex(floatr=0,floati=0){R

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。