Napisz klasę Set
opisującą podzbiór liczb całkowitych.
Elementy zbioru powinny być przechowywane w dynamicznie alokowanej tablicy. Tablica jest realokowana w przypadku zmiany liczby elementów zbioru.
Zaimplementuj następujące metody klasy:
operator+=()
- suma zbiorówoperator-=()
- różnica zbiorówoperator*=()
- przecięcie zbiorówoperator+()
- suma zbiorówoperator-()
- różnica zbiorówoperator*()
- przecięcie zbiorówoperator<<()
- wypisz elementy zbiorumain()
sprawdzającą poprawność zaimplementowanych metodUwaga: Pamiętaj o usunięciu powtarzających się elementów ze zbiorów wynikowych.
Napisz klasę Complex
implementującą liczbę zespoloną. Klasa
powinna zawierać dwa pola rzeczywiste odpowiadające części rzeczywistej i
urojonej liczby.
Zaimplementuj następujące funkcje składowe:
- Complex(double re, double im); // konstruktor
- Complex& operator+=(const Complex& c); // dodaj liczbę c do aktualnej liczby
- Complex& operator-=(const Complex& c); // odejmij liczbę c od aktualnej liczby
- Complex& operator*=(const Complex& c); // pomnóż liczbę c przez aktualną liczbę
- Complex& operator/=(const Complex& c); // podziel aktualną liczbę przez c
Wykorzystując powyższe operatory zdefiniuj następujące funkcje zewnętrzne:
- Complex operator+(const Complex& c1, const Complex& c2);
- Complex operator-(const Complex& c1, const Complex& c2);
- Complex operator*(const Complex& c1, const Complex& c2);
- Complex operator/(const Complex& c1, const Complex& c2);
- ostream& operator<<(ostream& os, const Complex& c);
Funkcja main()
powinna testować działanie wszystkich
wymienionych wyżej funkcji.