欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验五 多态.docx

    • 资源ID:427793       资源大小:76.90KB        全文页数:9页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验五 多态.docx

    实验五多态程序设计一、实验目的:理解运算符重载的概念和实质,掌握运算符重载函数的定义方法,掌握运算符重载为类的成员函数和友元函数的方法。掌握虚函数的定义方法及其在实现多态性中的应用,理解静态连编和动态链编的区别。二、实验时间:三、实验地点:四、实验内容:1 .已知基类:c1assBasepub1ic:virtua1voidI_am()cout<<,Base,<<end1;);要求:(1)从BaSe类中派生出两个类,分别定义1amo函数,实现输出自己类的名字。(2)主函数中创建者3个类的对象来调用1am()函数,再利用Base的指针数组通过循环语句来调用这3个对象的1amo函数。2 .编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。3 .设计字符串类String,完成以下功能:(1)使用+运算符实现两个字符串的连接功能。(2)使用二运算符实现字符串的复制功能。(3)使用=运算符判断两个字符串是否相等功能。(4)计算字符串长度的功能。五、实验要求:在上机前写出全部源程序;六、实验结果分析:1、已知基类:c1assBasepub1ic:virtua1voidI-am()cout<<,Base,<<end1;);结果:代码:#inc1ude<iostream>usingnamespacestd;c1assBase(pub1ic:virtua1voidI_am()cout«"Basen«end1;);c1assBasekpub1icBase(pub1ic:virtua1void1am()cout<v"我是第一个继承Base的Base,<<end1;);c1assBase2:pub1icBase(pub1ic:virtua1void1am()cout<v"我是第二个继承Base的Base2',<<end1;);intmain()Basep,*a3;Base1p1;Base2p2;a0=&p;a1=&p1;a2J=&p2;for(inti=0;i<3;i+)(ai->I.am();)return0;2、编写程序,计算圆柱体,球体,正方体的表面积和体积。要求用抽象类实现。结果:1、计算圆柱体的体积和表面积1高2,4.J一:工BS为积一用的学CEEBENC+fi2x表面积和献.exe2、计算球体的体积和表面积E1BENC+52s表面Oa醐.exe2.S2i:;r D 5 1 2 4VHr 3 径56: :.565长半:鬻78,边的为奉体积国为整后加积面方圆表正人强人的的人 lnt清圆圆¾g3、计算正方体的体积和表面积E:BENC+52x表面Oa够exe2.S高 2.4.50 5 124 - 356:.565长47:中.zl78-:为 &军,R½f积体积ISS为量积面 H体羊株积面奈表圆的的球表正的的人注入的的人款方 Processreturned0<0×0>e×ecutiontime:172.178sPreSSanykeytocontinue.代码:#inc1ude<iostream>usingnamespacestd;constf1oatPI=3.14;抽象类c1assBase(pub1ic:virtua1voidDisp1ayO=0;虚函数protected:f1oatr1,r2,h,a;1;圆柱体类c1assCy1inder:pub1icBase(pub1ic:Cy1inder(f1oatpr1,f1oatPh)构造函数(r1=pr1;h=ph;f1oatCy1inderSurfaceAreaO(return2*PI*r1*r1+2*PI*r1*h;1f1oatCy1inderVo1umeO(returnPI*r1*r1*h;1voidDisp1ayO(cout«”圆柱体的体积为:"vvCyIinderSurfaceAreaO«end1;cout«"圆柱体的表面积为:"VVCy1inderVo1umeO«end1;11;球类c1assSphere:pub1icBase(pub1ic:Sphere(f1oatpr2)构造函数(r2=pr2;f1oatSphereSurfaceAreaOreturn4*PI*r2*r2;)f1oatSphereVo1umeO(return4.0/3*PI*r2*r2*r2;1voidDisp1ayO(cout«”球体的体积为:"vvSphereSurfaceArea()«end1;cout«"球体的表面积为:"«SphereVo1umeO«end1;11;正方体类c1assCube:pub1icBase(pub1ic:Cube(f1oatpa)构造函数(a=pa;f1oatCubeSurfaceAreaO(return6*a*a;f1oatCubeVo1umeO(returna*a*a;)voidDisp1ayO(cout«"正方体的体积为:"«CubeSurfaceArea()«end1;cout«"正方体的表面积为:"VVCubeVo1umeO«end1;1);intmain()(f1oatpr1,pr2,ph,pa;COUtVV”请输入圆柱体的半径和高:”;cin»pr1»ph;Cy1inderp1(pr1,ph);p1.Disp1ay();CoUtVV”请输入球体的半径:”;cin»pr2;Spherep2(pr2);p2.Disp1ay();cout«"请输入正方体的边长:cin»pa;Cubep3(pa);p3.Disp1ay();return0;)3、设计字符串类String结果:代码:#inc1ude<iostream>#inc1ude<string>#inc1ude<cstring>usingnamespacestd;c1assStringpub1ic:String()Stringoperator+(constString&a);String<fcoperator=(constString&a);intoperator=(constString&a);int1ength(constString&a);String(charx)(s=newchar1str1en(x)J;strcpy(s,x);String(constString&str)s=newcharstr1en(str.s)+1;strcpy(s,str.s);char*Get_s()returns;private:char*s;StringString:operator+(constString&a)(char*p=newchar1str1en(a.s)+str1en(this->s)+1;strcpy(p,this->s);strcat(p,a.s);returnString(p);String&String:operator=(constString&a)(s=newcharstr1en(a.s)+1;strcpy(s,a.s);return*this;)intString:1ength(constString&a)returnstr1en(a.s);intString:operator=(constString&a)if(strcmp(s,a.s)=O)returnO;e1sereturn1;)intmain()(Strings1="abc",s2="abcdfsDSF's3;cout<<',s1=abc<<ns2=abcdfsDSF<<end1;cout<<s1的长度为:"v<s1.1ength(s1)<<end1;cout<<s2的长度为:"v<s2.1ength(s2)<<end1;if(s1=s2)=0)(COUt<v"s1,s2相等!u<<end1;)e1secout<<ns1,s2不相等!,<<end1;s3=s1+s2;cout<<s1+s2="«s3.Get_s()«end1;returnO;)七、实验心得体会及问题反馈:本实验主要对面向对象多态的初步掌握。其中对运算符重载、虚函数、纯虚函数、抽象类的概念进一步深化。通过这些练习我也逐渐对面向对象过程理解更加深刻。多态主要是通过不同的类的不同的对象实现不同的方法。

    注意事项

    本文(实验五 多态.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开