#include #include using namespace std; class Complex { double re, im; public: Complex () {} Complex (double, double); ~Complex () {} double modul (); Complex operator+ (Complex); Complex operator+= (Complex); }; Complex::Complex (double a, double b) { re = a; im = b; } double Complex::modul () { return sqrt(re*re + im*im) ; } Complex Complex::operator+ (Complex z2) { Complex temp; temp.re = re + z2.re; temp.im = im + z2.im; return temp; } Complex Complex::operator+= (Complex z2) { re += z2.re; im += z2.im; return *this; // this: wskaznik na wlasny obiekt. } // *this: tenze wlasny obiekt. /* Uwaga: jezeli dzialanie operatora+= ma sie ograniczyc tylko do instrukcji typu a += b; to mozna jeszcze uproscic: void Complex::operator+= (Complex z2) { re += z2.re; im += z2.im; } */ int main () { Complex z1 (3,4); cout << "|z1| = " << z1.modul() << endl; Complex z2 (-2, -3); Complex z3 = z1 + z2; z3 += z1; cout << "|z1+z2| = " << z3.modul() << endl; return 0; }