请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了MiniComplex是一个用于表示复数的类。请编写这个operator+运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数:其实部等于两个复数的实部之和,其虚

admin2015-06-27  24

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了MiniComplex是一个用于表示复数的类。请编写这个operator+运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数:其实部等于两个复数的实部之和,其虚部等于两个复数的虚部之和。例如,(23+34i)+(56+35i)等于(79+69i)。
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//Minicomplex.h
#include
usingnamespacestd;
classMiniComplex//复数类
{
public:
//重栽流插入和提取运算符
friendostream&operator<<
(ostream&osObject,const
MiniComplex&complex)
{
osObject<<"("<returnosObject;
}
friendistream&operator>>(istream&
isObject,MiniComplex&complex)
{
charch;
isObject>>complex.realPart>>
ch>>complex.imagPart>>ch;
returnisObject;
}
MiniComplex(doublereal=0,doubleimag=0);
//构造函数
MiniComplexoperator+(const
MiniComplex&otherComplex)const;
//重载运算符+
private:
doublerealPart;//存储实部变量
doubleimagPart;//存储虚部变量
};
voidwriteToFile(char*);
//main.cpp
#include"MiniComplex.h"
MiniComplex::MiniComplex(doublereal,doubleimag){realPart=real;
imagPart=imag;}
MiniComplexMiniComplex::operator+(constMiniComplex&otherComplex)const
{
//********333********
//********666********
}
intmain()
{
voidwriteToFile(char*);
MiniComplexnuml(23,34),num2(56,35);
cout<<"InitialValueOfNuml="<
"<cout<<号运算符
writeToFile("");
return0;
}

选项

答案MiniComplexsum;//定义复数对象sumsurn.imagPart=this->imagPart+otherComplex.imagPart; //把this中的虚部(this->imaglPart)和othercomplex虚部相加赋值给Sum虚部sum.realPart=this->realPart+otherCompl.ex.realPart; //把this中的实部(this->reapart)加上othercomplex实部赋值给sum实部returnsum;//返回对象sum

解析 主要考查考生对运算符重载的掌握,题目要求编写operater+运算符函数,以实现复数的求和与运算。复数的和的实部等于两个复数的实部之和,虚部等于两个复数的虚部之和。函数要返回的类型是MiniComplex,因此要先定义一个MiniComplex类型变量sum,然后对它们的实部和虚部各自求和,返回sum即可。
转载请注明原文地址:https://jikaoti.com/ti/BqXiFFFM
0

最新回复(0)