请打开考生文件夹下的解决方案文件proj3,其中声明了MiniComplex是一个用于表示复数的类。请编写这个operator+运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数:其实部等于两个复数的实部之和,其虚部等于两个复数的虚部之和。例如

admin2019-04-24  28

问题 请打开考生文件夹下的解决方案文件proj3,其中声明了MiniComplex是一个用于表示复数的类。请编写这个operator+运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数:其实部等于两个复数的实部之和,其虚部等于两个复数的虚部之和。例如,(23+34i)+(56+35i)等于(79+69i)。
    要求:
    补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。
    注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//Minicomplex.h
#include
using namespace std;
class MiniComplex//复数类
{
public:
  //重载流插入和提取运算符
  friend ostream&operator<<(Ostream&  OsObj ect,const MiniComplex&complex)
  {
    OsObj ect<<"("<    return osObject;
  }
  friend istream&operator>>(istream&isObject,MiniComplex&complex)
  {
    char ch;
    isObject>>complex.real
Part>>ch>>complex.imagPart
>>ch ;
    return isObject;
  }
  MiniComplex(double real=0,double imag=0);
//构造函数
  MiniComplex operator+(const
MiniComplex&otherComplex)const;
//重载运算符+
private:
  double realPart;//存储实部变量
  double imagPart;//存储虚部变量
};
void writeToFile(char*);
//main.cpp
#include"MiniComplex.h"
MiniComplex::MiniComplex(double real,double imag){realPart=real;imagPart=imag;}
MiniComplex MiniComplex::operator+(const MiniComplex&other Complex)const
{
//********333********
//********666********
}
int main()
{
  void writeToFile(char *);
    MiniComplex  num1  (23,34),
num2(56,35);
  cout<<"Initial Value of Numl="<    return 0;
  }

选项

答案MiniComplex sum;//定义复数对象sum sum.imagPart = this->imagPart +otherComplex.imagPart; //把this中的虚部(this->imagPart)和thercomplex虚部相加赋值给Sum虚部 sum.realPart = this->real-Part+otherComplex.realPart; //把this中的实部(this-> reapart)加上othercomplex实部赋值给sum实部 return sum; //返回对象Sum

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

最新回复(0)