




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验十三1实验目的通过本次实验(1)理解友元函数与运算符重载函数的概念;(2)学会友元函数的定义与使用方法;(3)掌握运算符重载函数的定义与使用方法;2实验要求(1)编写实验程序(2)在VC+运行环境中,输入源程序(3)编译运行源程序(4)输入测试数据进行程序测试;(5)写出运行结果。3实验内容(1)定义一个复数类,重载“-=”运算符,使这个运算符能直接完成复数的“-=”运算。分别用成员函数与友元函数编写运算符重载函数。在主函数中定义复数对象c1(10,20)、c2(15,30),进行c2-=c1的复数运算,并输出c1、c2的复数值。(2)定义一个数组类Array,其私有数据成员为整型一维数组a10。通过构造函数给a10赋初值。用Show函数显示a10的元素值。用成员函数重载运算符“+”,直接实现两个一维数组对应元素相加的运算。在主函数中定义数组a、b分别为:int a10=1,2,3,4,5,6,7,8,9,10; int b10=4,5,6,7,8,9,10,11,12,13;用Array定义三个数组对象arr1(a)、arr2(b)、arr3,执行arr3=arr1+arr2运算,输出arr3的数组元素值。类似地,用友元函数重载运算符“+=”,实现复合赋值运算:arr1+=arr2,并输出arr1的元素值。(3)定义一个人民币类Money,类中数据成员为元、角、分。用成员函数与友元函数重载“”运算符,实现人民币对象的减1运算。在主函数中定义人民币对象m1=10元8角5分及对象m2、m3。对m1作前置“”并赋给m2。对m1作后置“”并赋给m3。显示m1、m2、m3的结果。(4)定义描述字符串的类String,编写字符串运算符“+=”的重载函数,使运算符“+=”用于两个字符串联接操作,即用str1+=str2实现字符串函数strcat(str1,str2)的操作功能。要求分别用成员函数与友元函数编写运算符重载函数。在主函数中定义字符串对象 s1(software and )与s2(hardware),进行s1+=s2的字符串联接,并输出s1、s2的值。4解答参考(1)成员函数# include class Complex private: float Real,Image; public: Complex(float r=0,float i=0) Real=r;Image=i; void Show(int i) coutci= Real+Imageiendl; void operator +=(Complex &c) Real=Real+c.Real; Image=Image+c.Image; ;void main(void) Complex c1(10,20),c2(15,30); c1.Show(1); c2.Show(2); c2+=c1; c2.Show(2);友元函数# include class Complex private: float Real,Image; public: Complex(float r=0,float i=0) Real=r;Image=i; void Show(int i) coutci= Real+Imageiendl; friend void operator +=(Complex &c1,Complex &c2);void operator +=(Complex &c1,Complex &c2) c1.Real=c1.Real+c2.Real; c1.Image=c1.Image+c2.Image; void main(void) Complex c1(10,20),c2(15,30); c1.Show(1); c2.Show(2); c2+=c1; c2.Show(2);程序运行结果:c1=10+20ic2=15+30ic2=25+50i(2)(3)# include # include class Money private: float Yuans,Jiaos,Fens; public: Money() /定义默认的构造函数 Yuans=Jiaos=Fens=0; Money(float y,float j,float f) Yuans=y; Jiaos=j; Fens=f; Money operator -( ); Money operator -( int ); void Show(void) coutYuans元Jiaos角Fens分endl; ;Money Money:operator - () if (Fens=0) if (Jiaos=0) if (Yuans=0) coutcan not -n ; else Yuans-; Jiaos=9; else Jiaos-; Fens=9; else Fens-; return *this; /返回自加后的人民币对象值Money Money:operator- (int ) Money temp=*this; /将自加前人民币对象值存入临时对象temp if (Fens=0) if (Jiaos=0) if (Yuans=0) coutcan not -n ; else Yuans-; Jiaos=9; else Jiaos-; Fens=9; else Fens-; return temp;void main( void) Money m1(10,8,5),m2,m3; coutm1= ; m1.Show(); m2= -m1; m3= m1-; coutm2= ; m2.Show(); coutm3= ; m3.Show(); coutm1= ; m1.Show(); 程序运行结果:m1= 10元8角5分m2= 10元8角4分m3= 10元8角4分m1= 10元8角3分(4)成员函数# include # include class String/定义字符串类 protected : int Length; char *Sp; public: String() /定义缺省的构造函数 Sp=0;Length=0; String(const char *s) /定义初始化构造函数 Length=strlen(s); Sp=new charLength +1; strcpy(Sp,s); String() /定义析构函数 if (Sp) delete Sp; void Show() /定义显示字符串函数 coutSpendl; String operator +=(String &s) /定义字符串拼接成员函数 String t; t.Length=Length+s.Length; t.Sp=new chart.Length+1; strcpy(t.Sp,Sp); strcat(t.Sp,s.Sp); return t; ;void main (void) String s1(software),s2(hardware); s1.Show(); s2.Show(); s2+=s1; s2.Show();友元函数# include # include class String/定义字符串类 protected : int Length; char *Sp; public: String() /定义缺省的构造函数 Sp=0;Length=0; String(const char *s) /定义初始化构造函数 Length=strlen(s); Sp=new charLength +1; strcpy(Sp,s); String() /定义析构函数 if (Sp) delete Sp; void Show() /定义显示字符串函数 coutSpendl; friend String operator +=(String &s) /定义字符串拼接友员函数; String operator +=(String &s) /定义字符串拼接函数 String t; t.Length=Length+s.Length; t.Sp=new chart.Length+1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届四川省南充市广安市广安中学八年级物理第一学期期末预测试题含解析
- 山西省运城运康中学2026届八年级物理第一学期期末联考试题含解析
- 上海市延安实验初级中学2026届物理八年级第一学期期末监测模拟试题含解析
- 2026届浙江省嘉兴市秀洲片区物理八年级第一学期期末综合测试模拟试题含解析
- 福建省厦门市双十中学2026届八年级物理第一学期期末学业水平测试试题含解析
- 2026届吉林省农安县前岗中学物理八上期末调研试题含解析
- 药店坐堂行医管理办法
- 高主频游戏CPU项目可行性研究报告
- 药店顾客投诉管理办法
- 萍乡培训管理办法细则
- 工程质量自评报告
- 成都燃气公司招聘笔试题
- 《软件供应链安全技术白皮书》
- GB/T 34487-2017结构件用铝合金产品剪切试验方法
- GB/T 31703-2015陶瓷球轴承氮化硅球
- 绿色黑板卡通风初中数学开学第一课PPT模板
- 水泥熟料生产工艺及设备课件
- 代运营协议合同范本
- 浙美版美术三年级上册全册教案
- 座位表模板(空白)
- 部编版高一语文必修上册教学计划
评论
0/150
提交评论