C++实验三运算符重载及多态与虚函数.docVIP

C++实验三运算符重载及多态与虚函数.doc

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

课程实验报告 课程名称 C++面向对象程序设计 班级 计算131 实验日期 2015/5/21-2015/5/29 姓名 赵宇涵 学号 201307012 实验成绩 实验名称 实验三 运算符重载及多态与虚函数 实 验 目 的 及 要 求 1、理解运算符重载的重要性及好处。理解静态联编和动态联编,理解多态的概念。 2、理解哪些运算符可以重载而哪些不能重载。理解虚函数在类的继承层次中的作用及虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。 3、理解单目运算符和双目运算符重载时的特点。了解虚函数对多态性的支持。 4、熟练掌握一般运算重载的方法。掌握虚函数和纯虚函数的概念。 5、掌握特殊运算符重载的方法。理解静态多态性和动态多态性,学习使用虚函数的继承实现动态多态性。 6、了解抽象类的概念。 实验环境 VC++6.0/Dev-cpp 实 验 内 容 编写一个时间类Time,包含时、分、秒等数据成员,实现时间的加、减、输入和输出操作。其中加减通过重载相应运算符来实现。 设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,返回t1和t2两个三角形面积之和。 分析提示:在Triangle类中设计一个友元函数operator+(Triangle t1,Triangle t2),它重载运算符“+”,返回t1和t2两个三角形的面积之和。 分析程序的错误,分析原因并改正。 下面的shape类是一个表示形状的抽象类,area()为求图形面积的函数。请从shape类派生三角形类(triangle)和圆类(circle), 并给出具体的求面积函数。 算 法 描 述 及 实 验 步 骤 1、 2、 3、 4、 调 试 过 程 及 实 验 结 果 2、 3、 4、 总 结 此次试验内容为运算符重载及多态与虚函数。运算符重载的函数体有时不单单是简单的加减计算,还要考虑到实际情况作出相应的补充,如题一,时分秒的加减在实际情况中,相加时,分秒超过60都要进1,而小时超过24则天数进1,相应的本位也要减去60或24;而相减时,实际情况中是不会出现负数的,出现了说明前位本应减一,这些都要在重载函数体重作出相应的补充。 题目二由三角形三边计算面积需用到平方根公式,头文件中也需添加相应数学头文件。题目三在主函数中定义基类指针无法调用派生类函数,则把基类函数改为虚函数,派生类函数名替换为基类函数名便可顺利调用。题目四与题目二几乎相同,参考题目二即可。 附 录 1、 class Time { private: int hour; int minute; int second; public: Time(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){} void input(); void display(); Time operator+(Time t); Time operator-(Time t); }; void Time::input() { cout请输入时 分 秒endl; cinhourminutesecond; } void Time::display() { if(second=60) { minute=minute+1; second=second-60; } if(minute=60) { hour=hour+1; minute=minute-60; } if(hour=24) { cout明天的hour-24时minute分second秒endlendl; } else couthour时minute分second秒endlendl; } 2、 class Triangle { private: float x1; float x2; float x3; float area; public: Triangle(float a1=0,float a2=0,float a3=0):x1(a1),x2(a2),x3(a3){} float computeArea(); friend Triangle operator+(Triangle t1,Triangle t2); void display(); }; float Triangle::computeArea() { float

文档评论(0)

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

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

1亿VIP精品文档

相关文档