6: //***********************************************************

Transkrypt

6: //***********************************************************
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:
#include <iostream>
#include <ostream>
#include <cmath>
using namespace std;
//**************************************************************************
//Klasa liczb zespolonych
class zespolona
{
public:
public
//dane
double real;
double imag;
//konstruktor
zespolona();
zespolona(double
double re, double im);
//metody
double mod();
void print();
//operatory
zespolona operator
operator=(zespolona z);
zespolona operator+(zespolona
operator
z);
//operator << dla strumieniowego wyjscia
friend ostream& operator<<(ostream&
operator
wy, const zespolona& z);
};
//**************************************************************************
//konstruktor inicjujący dane zerami
zespolona::zespolona()
{
real = 0;
imag = 0;
}
//konstruktor inicjujący dane podanymi wartosciami
zespolona::zespolona(double
double re, double im)
{
real = re;
imag = im;
}
//modul liczby zespolonej
double zespolona::mod()
{
return sqrt(real*real+imag*imag);
}
//wypisanie liczby na cout
void zespolona::print()
{
cout << "(" << real << (imag<0?"-j":"+j") << abs(imag) << ")";
}
//w tym przykladzie nie ma potrzeby przeciazania operatora = (przyklad)
zespolona zespolona::operator
operator=(zespolona
z)
operator
{
real = z.real;
imag = z.imag;
return *this
this;
this
}
//przeciazony operator dodawania
zespolona zespolona::operator
operator+(zespolona
z)
operator
{
zespolona tmp;
tmp.real = real + z.real;
tmp.imag = imag + z.imag;
return tmp;
}
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
//przeciazony operator << dla strumieniowego wyjscia
ostream& operator << (ostream &wy, const zespolona& z)
{
wy << "(" << z.real << (z.imag<0?"-j":"+j") << abs(z.imag) << ")";
return wy;
}
//**************************************************************************
int main()
{
//deklaracja obiektow zainicjowanych
zespolona a(2,3), b(3,-4);
zespolona c;
//wypisanie metoda print
cout << "a = ";
a.print();
cout << endl;
//dodawanie
c=a+b;
//wypisanie strumieniowe za pomoca cout
cout << a << " + " << b << " = " << c << endl;
system("pause");
return 0;
}