




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、实验目的: 1) 理解编译时的多态性和运行时的多态性。 2) 掌握运算符重载的基本方法。 3) 掌握虚函数的定义与使用方法。二、实验内容及方法:1)定义一个复数类Complex,并重载运算符+、-、*、/和负号(用友元函数实现)2) 定义一个有理数类,并重载运算符+、-、*、/(用成员函数实现)。 class Rational public: /构造函数 Rational(int num1=0,int den1=1); /重载运算符 const operator+(const Rational r); const operator-( const Rational r); const operator*( const Rational r); const operator/( const Rational r); private: /定义一个有理数num为分子,den为分母 int num, den; ; 3) 定义一个类Animal,该类中可以存放动物的名字,并有一个Identify函数用于显示动物的种类。 4) 定义两个类Cat、Dog,都继承自Animal,并重载Identify函数,不但要显示动物的种类,还要显示动物的名字。 5) 定义一个Tiger类,继承自Cat,重载Identify函数,显示动物的种类和名字。 三、实验程序如下:1、#includeclass complexpublic:complex() real=imag=0;complex(double r) real=r;imag=0.0;complex(double r,double i)real=r;imag=i;friend complex operator+(complex,complex); friend complex operator-(complex,complex);friend complex operator*(complex,complex);friend complex operator/(complex,complex);friend complex operator-(complex &); void Display();private:double real,imag;complex operator+(complex c1,complex c2)complex t;t.real=c1.real+c2.real;t.imag=c1.imag+c2.imag;return t;complex operator-(complex c1,complex c2)complex t;t.real=c1.real-c2.real;t.imag=c1.imag-c2.imag;return t; complex operator*(complex c1,complex c2)complex t;t.real=c1.real*c2.real-c1.imag*c2.imag;t.imag=c1.real*c2.imag+c1.imag*c2.real;return t; complex operator/(complex c1,complex c2)complex t; t.real=(c1.real*c2.real+c1.imag*c2.imag)/(c1.real*c1.real+c1.imag*c2.imag);t.imag=(c2.real*c1.imag-c1.real*c2.imag)/(c1.real*c1.real+c1.imag*c2.imag);return t;complex operator-(complex &c)complex t;t.real=-c.real;t.imag=-c.imag;return t;void complex:Display()cout0)cout+;if(imag!=0)coutiendl;void main()complex c1(5.0,2.4),c2(3.0,-2.5),c3;c3=c1+c2;coutc3=;c3.Display();c3=c1-c2;coutc3=;c3.Display();c3=c1*c2;coutc3=;c3.Display();c3=c1/c2;coutc3=;c3.Display();c3=-c1;coutc3=;c3.Display();2、#include #include class Rationalpublic: /构造函数 Rational(int num1=0,int den1=1); /重载运算符 const Rational operator+(const Rational &r); const Rational operator-( const Rational &r); const Rational operator*( const Rational &r); const Rational operator/( const Rational &r); /重载输出符 friend ostream& operator den * r.den; temp.num = this-num * r.den + this-den * r.num; temp.Reduction(); return temp;const Rational Rational:operator-(const Rational& r) Rational temp; temp.den = this-den * r.den; temp.num = this-num * r.den - this-den * r.num; temp.Reduction(); return temp;const Rational Rational:operator*(const Rational& r) Rational temp; temp.den = this-den * r.den; temp.num = this-num * r.num; temp.Reduction(); return temp;const Rational Rational:operator/(const Rational& r) Rational temp; temp.den = this-den * r.num; temp.num = this-num * r.den; temp.Reduction(); return temp;void Rational:Reduction() int i,z; if (den=0) coutdata errornum?den:num; for(i=2;i=sqrt(z);i+) while(den%i=0 & num%i=0)/here den=den/i; num=num/i; ostream& operator(ostream& outs, const Rational& r) outsr.num/r.den
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认购返利合同模板8篇
- 租房转租合同模板6篇
- 理货员岗位安全培训课件
- 迪庆木栈道工程方案(3篇)
- 玖龙纸业岗位安全培训课件
- 猫造型雕塑专业知识培训课件
- 德利矿业年产400万吨氧化钙、70万吨炼钢专用石项目(二期工程)环境影响报告表
- 防盗工程门加工方案(3篇)
- 狼崖山五壮士课件
- 顶梁美化改造工程方案(3篇)
- 血常规室内质控模板
- Welcome+unit +and+Expressions+单词讲解课件 【知识精讲精研】高中英语人教版必修第一册
- GB/T 43950-2024工业浓盐水回用技术导则
- 2024年出租车网约车司机从业资格证考试题库附参考答案【模拟题】
- “1+X”幼儿照护技能等级证书(中级)考试题库(多选、判断题)
- T-CUWA 20059-2022 城镇供水管网模型构建与应用技术规程
- 火电厂检修培训课件
- 核医学医学影像医技科室质量评估细则
- 观看《中国乒乓之绝地反击》观后感600字三篇
- YY/T 0698.5-2023最终灭菌医疗器械包装材料第5部分:透气材料与塑料膜组成的可密封组合袋和卷材要求和试验方法
- 小学生班干部竞选PPT模板
评论
0/150
提交评论