实验7 运符重载设计.doc

实验7 运符重载设计.doc

ID:58476438

大小:62.50 KB

页数:6页

时间:2020-05-15

实验7 运符重载设计.doc_第1页
实验7 运符重载设计.doc_第2页
实验7 运符重载设计.doc_第3页
实验7 运符重载设计.doc_第4页
实验7 运符重载设计.doc_第5页
资源描述:

《实验7 运符重载设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告实验序号: 7         实验项目名称:运算符重载设计学  号姓  名专业班级2013级计算机科学与技术实验地点指导教师时间2014.5.15一、实验目的及要求1、理解运算符重载的概念、运算符重载规则;2、熟练掌握双目运算符、单目运算符的重载,能够根据给定要求采用合适的方式实现运算符重载函数;3、熟练掌握流插入运算符“<<”和流提取运算符“>>”的重载;4、熟悉不同类型数据之间的转换方法。二、实验设备(环境)及要求硬件:PC

2、(PII以上,128M以上内存)、因特网接入;软件:WindowsXP操作系统或更高版本、Office2003或更高版本、VisualC++6.0。实验学时:2学时其他要求:完成验证题目和设计题目;验证题目要求给出运行结果及涉及到的知识点;设计题目写出设计思路、源程序及结果三、实验内容与步骤说明:对下述实验内容给出实验结果并分析总结。【验证题目】:验证教材相关例题10.2,10.3,10.4,10.6,10.8,10.9,10.1010.2、分析:运算符重载的方法是定义一个重载运算符的函数,使指定的

3、运算符不仅能实现原有的功能,而且能实现在函数中指定的新功能。(运算符重载实质是函数的重载)10.3、分析:本例中我们首次运用了友元函数对运算符重载的函数进行处理,友元函数:(运算符的函数不是类的成员函数《可以使一个普通函数》我们把它声明为友元函数);除此对运算符重载的函数还有一种方式是把运算符重载的函数作为类的成员函数。10.4、分析:通过这个例子,不仅可以学到怎样对一个双目运算符进行重载,而且还可以学习怎样去编写C++程序。此例题介绍的方法能使人清晰的思路进行程序设计,减少出错的机会,提高调试效率

4、。10.6、分析:前置自增运算符“++”和后置自增运算符“++”二者左右的区别。前者是先自加,返回的是修改后的对象本身,后者返回的是自加前的对象,然后对象自加。10.7、10.8分析:重载流提取运算符(“〉〉”)的目的是希望将“〉〉”用于输入自定义类型的对象的信息。10.910.10分析:在已定义了相应的转换构造函数情况下,将运算符“+”函数重载为友元函数,在进行两个附属相加时,可用交换率。【设计题目】:定义一个二维方阵类Matrix。通过重载二元运算符“+”、“-”、“*”和一元运算符“~”,来实

5、现矩阵加、矩阵减、矩阵乘以及矩阵转置。【设计要点提示】1.以类成员方式或友元方式在自定义的方阵类Matrix中重载二元运算符“+”、“-”、“*”和一元运算符“~”,用来实现规定的矩阵运算。首先假定矩阵行列数r和c为固定常数,且被处理的矩阵数据存放于Matrix类的私有数据成员mem数组之中,并以类成员方式重载各运算符。下面给出Matrix类的定义,请对类体内声明的函数给出其定义,完善程序使之实现相应功能。constintr=3;constintc=3;classMatrix{intmem[r][c

6、];//矩阵之r行c列的数据存放于mem数组中public:Matrix(inta[r][c]);//1参构造函数,将参数a所带来的矩阵数据置于mem数组中Matrix();//无参构造函数,将mem数组各元素置为0Matrixoperator+(Matrix&);//矩阵加Matrixoperator-(Matrix&);//矩阵减Matrixoperator*(Matrix&);//矩阵乘Matrixoperator~();//矩阵转置voiddisplay();//输出矩阵};//在此补充有关

7、类内部声明的函数的定义//在主函数中使用Matrix类对象及各种重载运算符,以验证它们的正确性intmain(){inta[3][3]={1,2,3,4,5,6,7,8,9};intb[3][3]={1,2,3,0,1,2,-1,0,1};Matrixx(a),y(b);cout<<"--------x=------------"<

8、按设定格式显示出第二个矩阵yreturn0;}完善上述程序代码,上机调试运行。完善的代码:#includeclassMatrix{friendostream&operator<<(ostream&out,Matrix&M);//重载<<运算符friendistream&operator>>(istream&in,Matrix&M);//重载>>运算符public:Matrix(intr,intc);Matrixoperator+(Matrix&

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。