如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第PAGE4页实验八友元运算符重载和类运算符重载《C++程序设计》实验报告题目:友元运算符重载和类运算符重载姓名日期实验环境VisualC++6.0实验内容与完成情况实验目的:1,掌握运算符重载的必要性2,掌握友元运算符重载的一般格式3,掌握类运算符重载的一般格式4,掌握重载后的运算符的使用格式实验内容:1,设计一个类定义相关的数据成员和成员函数重载加、减运算符,实现对象的加减运算定义相关函数实现对象中数据的输出显示2,定义成员函数时,将成员函数定义在类体之外3,设计main函数创建多个对象进行对象的加减运算,并输出运算后对象的数据并输出结果源程序代码://类运算符的重载实现#include<iostream.h>classcomplex{doublereal;doubleimage;public:complex(doubler=0,doublei=0){real=r;image=i;cout<<"构造complex对象"<<real<<"+"<<image<<"i"<<endl;}complexoperator+(complexa){cout<<"开始+运算......"<<endl;doubler=a.real+real;doublei=a.image+image;complexs(r,i);cout<<"完成+运算,实现复数相加操作......"<<endl;returns;}complexoperator-(complexa){cout<<"开始-运算......"<<endl;doubler=a.real-real;doublei=a.image-image;complexs(r,i);cout<<"完成-运算,实现复数相减操作......"<<endl;returns;}voidshow(){cout<<"对象中存放的复数值为:"<<real<<"+"<<image<<"i"<<endl;}};voidmain(){complexc1(5,3),c2(1,2),c3,c4;c3=c2.operator+(c1);c3.show();c4=c1+c2;c4.show();}运行结果截图://友元运算符的重载实现#include<iostream.h>classcomplex{doublereal;doubleimage;public:complex(doubler=0,doublei=0){real=r;image=i;cout<<"构造complex对象"<<real<<"+"<<image<<"i"<<endl;}friendcomplexoperator+(complexa,complexb){cout<<"开始+运算......"<<endl;doubler=a.real+b.real;doublei=a.image+b.image;complexs(r,i);cout<<"完成+运算,实现复数相加操作......"<<endl;returns;}friendcomplexoperator-(complexa,complexb){cout<<"开始-运算......"<<endl;doubler=a.real-b.real;doublei=a.image-b.image;complexs(r,i);cout<<"完成-运算,实现复数相减操作......"<<endl;returns;}voidshow(){cout<<"对象中存放的复数值为:"<<real<<"+"<<image<<"i"<<endl;}};voidmain(){complexc1(5,3),c2(1,2),c3,c4;c3=operator+(c1,c2);c3.show();c4=c1+c2;c4.show();}程序运行结果出现的问题解决方案(列出遇到的问题和解决办法,列出未解决的问题)