-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathComplexClass.cpp
More file actions
93 lines (86 loc) · 2 KB
/
ComplexClass.cpp
File metadata and controls
93 lines (86 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "ComplexClass.h"
Complex::Complex()
{}
Complex::Complex(double r, double i)
{
real = r;
imag = i;
}
Complex::Complex(Complex *c)
{
real = c->real;
imag = c->imag;
}
void Complex::COPY(Complex *c)
{
real = c->real;
imag = c->imag;
}
Complex* Complex::add(Complex* c)
{
Complex* temp = new Complex;
temp->real = real + c->real;
temp->imag = imag + c->imag;
return temp;
}
Complex* Complex::sub(Complex* c)
{
Complex* temp = new Complex;
temp->real = real - c->real;
temp->imag = imag - c->imag;
return temp;
}
Complex* Complex::mul(Complex* c)
{
Complex* temp = new Complex;
temp->real = real*c->real - c->imag*imag;
temp->imag = imag*c->real + real*c->imag;
return temp;
}
Complex* Complex::div(Complex* c)
{
if (c->real == 0 && c->imag == 0)
{
throw "Division by zero condition!";
}
Complex* temp = new Complex;
temp->real = (real*c->real + c->imag*imag) / (c->real*c->real + c->imag*c->imag);
temp->imag = (imag*c->real - real*c->imag) / (c->real*c->real + c->imag*c->imag);
return temp;
}
Complex* Complex::operator+(Complex c)
{
Complex* temp = new Complex;
temp->real = real + c.real;
temp->imag = imag + c.imag;
return temp;
}
Complex* Complex::operator-(Complex c)
{
Complex* temp = new Complex;
temp->real = real - c.real;
temp->imag = imag - c.imag;
return temp;
}
Complex* Complex::operator*(Complex c)
{
Complex* temp = new Complex;
temp->real = real*c.real - c.imag*imag;
temp->imag = imag*c.real + c.imag*real;
return temp;
}
Complex* Complex::operator/(Complex c)
{
if (c.real == 0 && c.imag == 0)
{
throw "Division by zero condition!";
}
Complex* temp = new Complex;
temp->real = (real*c.real + c.imag*imag) / (c.real*c.real + c.imag*c.imag);
temp->imag = (imag*c.real - c.imag*real) / (c.real*c.real + c.imag*c.imag);
return temp;
}
void Complex::out()
{
cout << real << " + " << imag << " i , " << endl;
}