#include #include using namespace std; class zesp{ double rzeczywista, urojona; public: zesp(double re=0.0, double im=0.0): rzeczywista(re), urojona(im) {} double modul(){ return (sqrt(rzeczywista*rzeczywista+urojona*urojona)); } friend zesp operator+(const zesp&, const zesp&); // funkcja pozw. dostac sie do priv z zewnatrz friend ostream& operator<<(ostream&, const zesp&); // funkcja pozw. dostac sie do priv z zewnatrz }; //FUNKCJE zesp operator+ (const zesp& a, const zesp& b) { //funkcja przeladowania "+" double r, i; r = a.rzeczywista + b.rzeczywista; i = a.urojona + b.urojona; return zesp(r, i); } ostream& operator<<(ostream& out, const zesp &a) { //funkcja przeladowania "<<" out << "(" << a.rzeczywista << ", " << a.urojona << ")" << endl; return out; } int main(){ double re1, im1, re2, im2; cout << "Podaj czesc rzeczywista 1. liczby:"; cin >> re1; cout << "Podaj czesc urojona 1. liczby:"; cin >> im1; cout << "Podaj czesc rzeczywista 2. liczby:"; cin >> re2; cout << "Podaj czesc urojona 2. liczby:"; cin >> im2; zesp liczba1(re1,im1); zesp liczba2(re2,im2); cout << "Modul 1. liczby jest rowny: " << liczba1.modul() << endl; cout << "Modul 2. liczby jest rowny: " << liczba2.modul() << endl; //przeladowanie zesp suma = liczba1+liczba2; cout << suma << endl; system("PAUSE"); return EXIT_SUCCESS; }