实验四-流运算符的重载及文件的使用.doc

实验四-流运算符的重载及文件的使用.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告 ( 2014 / 2015 学年 第 二 学期) 课程名称 面向对象程序设计及C++ 实验名称 实验四:流运算符的重载及文件的使用 实验时间 2016 年 5 月 30 日 指导单位 计算机研究中心 指导教师 陈景强 学生姓名 班级学号 学院(系) 专 业 PAGE 7 实 验 报 告 实验名称 流运算符的重载及文件的使用 指导教师 陈景强 实验类型 验证 实验学时 2 实验时间 4 实验目的和要求 (1)掌握在自定义的类中重载输入流运算符和输出流运算符,并输入/输出本类对象。 (2)掌握文件操作的步骤和方法,能利用程序建立数据文件、打开数据文件并进行相关操作。 二、实验环境(实验设备) 硬件: 微型计算机 软件: Microsoft Visual C++6.0 三、实验原理及内容 实验题目(1): 在多态性实验第2题的基础上,在复数类中增加输入流运算符和输出流运算符的重载,主函数通过“cin对象名”输入对象的值,通过“cout对象名”输出对象的值,输出复数值时将原来主函数中“对象名.print( )”改成“cout对象名”形式。 在上一步完成的基础上,将复数类改成一个类模板,只设一个模板参数,即实部和虚部用同一种类型,修改相应的代码,完成输入、输出功能。 实验解答: (1)源代码参考多态性实验第2题。 (2)记录重载operator函数的代码: ostream operator(ostream s,const Complex c) { coutc.real; if(c.imag!=0) { if(c.imag0)cout+; coutc.imagi; } coutendl; return s; } (3) 将类改写成类模板:(多态性实验代码中的重载符号仅保留加法+,其他可省略)#includeiostream using namespace std; template class T class Complex { private: T real; T imag; public: Complex(T r=0,T i=0) { real=r; imag=i; } friend Complex operator+(const Complex a,const Complex b); friend Complex operator-(const Complex a,const Complex b); friend ostream operator(ostream out,const Complex a); friend istream operator(istream in,const Complex a); Complex operator*(const Complex a); Complex operator/(const Complex a); }; template class T ostream operator(ostream out,const Complex a) { outa.real; if(a.imag!=0) { if(a.imag0) out+; outa.imagi; } outendl; return out; } template class T istream operator(istream in,const Complex a) { ina.real; if(a.imag!=0) { if(a.imag0) in+; ina.imagi; } return in; } template class T Complex T operator+(const Complex T a,const Complex T b) { Complex T temp; temp.real=a.real+b.real; temp.imag=a.imag+b.imag; return temp; } template class T Complex T operator-(const Complex T a,const Complex T b) { Complex T temp; temp.real=a.real-b.real; temp.imag=a.imag-b.imag; return temp; } template class T Complex T Complex T::operator*(const Complex T a

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档