Przeciążanie operatorów
Ta sama klasa, w której zaimplementowano dodawanie i mnożenie za pomocą operatorów. Takie rozwiązanie pozwala stosować wygodną notację do obsługi obiektów:
complex(double r, double i) {re=r; im=i;}
friend complex operator+(complex, complex);
friend complex operator*(complex, complex);
complex operator+(complex z1, complex z2){
return complex(z1.r+z2.r, z1.i+z2.i);
complex operator*(complex z1, complex z2){
double re=z1.r*z2.r-z1.i*z2.i;
double im=z1.i*z2.r+z1.r*z2.i;
complex z1(3,0), z2(1,1), z3(0,0), z4(-2,-5);
Przykładowa implementacja klasy liczb zespolonych:
complex(double r, double i) {re=r; im=i;}
friend complex dodaj(complex, complex);
friend complex pomnoz(complex, complex);
complex dodaj(complex z1, complex z2){
return complex(z1.r+z2.r, z1.i+z2.i);
complex pomnoz(complex z1, complex z2){
double re=z1.r*z2.r-z1.i*z2.i;
double im=z1.i*z2.r+z1.r*z2.i;
complex z1(3,0), z2(1,1), z3(0,0), z4(-2,-5);
z4=dodaj(z3, pomnoz(z1, dodaj(z4,z2));