【以下是题目要求】
可将附件文件内容复制到上机时建立的项目中,在附件文件中上课举例代码的基础上,完善该自定义复数类的代码。
修正计算辐角的表达式并完善两个inline函数,并修改原有代码使用这两个函数。
实现复数与复数、复数与double、double与复数之间的加减乘除运算符重载。
目前无需实现输出,只要代码实现能通过编译即可。
【以下是源代码】
#include "pch.h"
#include <iostream>
#include <cmath>
using namespace std;
class myComplex
{
private:
double re, im, ra, th;
inline void xy2rt() {}
inline void rt2xy() {}
public:
myComplex(myComplex& c);
myComplex(double a, double b,
int mode);
myComplex operator +(myComplex a);
friend myComplex operator +(double,myComplex);
};
myComplex::myComplex(myComplex& c)
{
re = c.re;
im = c.im;
ra = c.ra;
th = c.th;
}
myComplex::myComplex(double a=0, double b=0, int m = 1)
{
if (m == 1)
{
re = a;
im = b;
ra = sqrt(a*a + b * b);
th = atan(b / a);
}
else if (m == 2)
{
ra = a;
th = b;
re = ra * cos(th);
im = ra * sin(th);
}
else
ra = th = re = im = 0.;
}
myComplex myComplex::operator+(myComplex a)
{
myComplex sum(*this);
sum.re += a.re;
sum.im += a.im;
sum.ra = sqrt(sum.re*sum.re + sum.im*sum.im);
sum.th = atan(sum.im / sum.re);
return sum;
}
int main()
{
myComplex a(5.,8.), b(a);
myComplex c;
c = 0.8 + b;
return 0;
}
myComplex operator +(double a, myComplex b)
{
myComplex sum(b);
sum.re += a;
sum.xy2rt();
return sum;
}
多谢大佬啦