内蒙古科技大学面向对象的程序设计实验十一 多态(二).docxVIP

内蒙古科技大学面向对象的程序设计实验十一 多态(二).docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内蒙古科技大学面向对象的程序设计实验十一 多态(二)

内蒙古科技大学面向对象的程序设计实验报告??课程名称:面向对象的程序设计姓名:陈伟光实验名称:多态(二)学号:1567159118任课教师:刘月峰专业:软件工程指导教师:刘月峰班级:15-软件一班??一、实验目的?1.理解掌握运算符[]、()的重载;2.理解类型转换,掌握类型转换函数的设计和使用;3.理解和掌握虚函数的作用;?4.掌握利用虚函数实现C++的运行时多态性;?5.理解纯虚类和抽象类。二、实验环境编译器:Visual C++ 6.0.操作系统:Windows 7?旗舰版?三、实验内容?2.1练习(一):1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。#include iostream.h#include stdlib.hclass CComplex{public:CComplex(double r = 0, double i = 0){? real = r;? imag = i;}int operator int(){? return (int)real;}void Display(void){? cout ( real , imag ) endl;}protected:double real;double imag;};class CVector{public:CVector(CComplex obj1, CComplex obj2, CComplex obj3, CComplex obj4){? objArray[0] = obj1;? objArray[1] = obj2;? objArray[2] = obj3;? objArray[3] = obj4;}friend CComplex operator[](CVectorobj, int n);private:CComplexobjArray[4];};CComplex operator[](CVectorobj, int n){if(n0 || n3){? coutOut of range!endl;? exit(0);}return obj.objArray[n];}void main(){CComplex c1(1.1, 1.1);CComplex c2(2.2, 2.2);CComplex c3(3.3, 3.3);CComplex c4(4.4, 4.4);CVector v(c1,c2,c3,c4);v[0].Display();v[1].Display();v[2].Display();v[3].Display();v[0] = 5.5; //----------------------------------------------------------①v[1] = CComplex(6.6); //-------------------------------------------②v[2] = int(CComplex(7.7)); //--------------------------------------③v[3] = int(CComplex(8.8,9.9)); //----------------------------------④?v[0].Display();v[1].Display();v[2].Display();v[3].Display();}问题一:上述程序存在两大错误,在不修改主函数和程序原意的前提下,改正该程序中存在的错误。问题二:①处的转换属于显式转换还是隐式转换,并解释该转换过程。问题三:②处的转换属于显式转换还是隐式转换,并解释该转换过程。问题四:解释③处的转换过程。问题五:解释④处的转换过程。2.2练习(二):1.编写一个程序计算三角形、正方形和圆形的面积,要求抽象出一个基类base,在其中说明一个虚函数,用来求面积,并利用单接口,多实现版本设计各图形面积的方法。四、实验过程练习1题目提供源代码如下:?尝试运行:非常多的错误,分析上代码,有两处错误第一处:类型转换成员函数功能是把类名所制定的类类型转换为operator后的类型名指定类型前面不应该加int,删除第二处:下标运算符只能重载为成员函数,删去参数表中前面的形参,删除friend关键字?修改之后的代码如下:尝试运行:代码可以运行,下面分析四处转换方法:?练习2:?尝试运行结果如下:?????五、实验总结实验源代码:练习(一)?#include iostream.h#include stdlib.hclass CComplex{public:CComplex(double r=0, double i = 0){real = r;imag = i;}operator int() //类型转换成员函数功能

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档