Наброски есть, но непонятно, в чем именно ошибки. А также непонятно, для чего нужны имперсанты при перегрузке операций. Прошу помочь как можно скорее...
C++ |
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
| class complex
{
double Re, Im;
public:
complex(double r, double i = 0)//конструктор, создающий комплекс из параметра дабл
//ноль дает возможность совершать операции над комплексными числами и целыми констанстами,
//которые представляются как комплексные с нулевой мнимой частью
{Re = r; Im = i;}
double mod(){return sqrt(Re*Re + Im*Im);}
double arg(){return atan(Im/Re);}
сomplex operator+(complex &c);
complex operator-(complex &c);
complex operator*(complex &c);
complex operator/(complex &c);
friend istream& operator >>(istream&, complex&);
friend ostream& operator << (ostream&, complex&);
void PrintTrig()
{
cout << "Число в тригонометрической форме:" << mod << "*(cos(" << arg << ")+ i*sin(" << arg << ")";
}
};
complex complex::operator+(complex &c)//перегрузка операции сложения
{
Re = Re + c.Re;
Im = Im + c.Im;
return *this;
}
complex complex::operator-(complex &c)//перегрузка операции вычитания
{
Re = Re - c.Re;
Im = Im - c.Im;
return *this;
complex complex::operator*(complex &c)//перегрузка операции умножения
{
double a, b;
a = Re*c.Re - Im*c.Im;
b = Re*c.Im + c.Re*Im;
Re = a;
Im = b;
return *this;
}
complex complex::operator/(complex &c)//перегрузка операции деления
{
double a, b, d;
d = c.Re*c.Re + c.Im*c.Im;
a = (Re*c.Re + Im*c.Im)/d;
b = (Re*c.Im - c.Re*Im)/d;
Re = a;
Im = b;
return *this;
}
istream &operator>>(istream &c1, сomplex &c)//перегрузка операции ввода
{
cout << "Введите действительную часть числа: ";
c1 >> c.real;
cout << "Введите мнимую часть числа: ";
c1 >> c.image;
return c1;
}
ostream &operator<<(ostream &с2, Komplex &с)//перегрузка операции вывода
{
if (с.im < 0) с2 << с.re << "+(" << с.im << ")i\n";
else с2 << с.re << "+" << с.im << "i\n";
return с2;
} |
|