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

admin2019-06-05  42

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程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)
{
osObject<<”(”<<<”)”;
return osObj ect;
}
friend istream&operator>>(istream&
isObject,MiniComplex&complex)
{
char ch;
isObj ect>>complex.realPart>>
ch>>complex.imagPart>>ch;
return isObj ect;
}
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&otherComplex)const
{
//**********333**********
//**********666**********
}
int main()
{
  void writeToFile(char*);
  MiniComplex numl(23,34),num2 I
35);
  cout<<“Initial Value of Numl=
”<  cout<<  writeToFile(””);
  return 0;
}

选项

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

解析 本题考查MiniC0mplex类,其中涉及友元函数、运算符重载和构造函数。运算符重载首先要理解被重载的运算符的含义,其次要掌握类的定义。
【解题思路】主要考查考生对运算符重载的掌握,题目要求编写0p.erater+运算符函数,以实现复数的求和与运算。复数的和  .的实部等于两个复数的实部之和,虚部等于两个复数的虚部之和。函数要返回的类型是MinjC0mplex,因此要先定义一个MimiComplex类型变量gum,然后对它们的实部和虚部各自求和,返回s岫即可。
转载请注明原文地址:https://jikaoti.com/ti/dqA0FFFM
0

最新回复(0)