P
ROGRAMOWANIE
O
BIEKTOWE
–
L
ABORATORIUM
Ć
WICZENIE
5
–
W
PROWADZENIE DO POLIM
ORFIZMU I PRZECIĄŻANIA OPERATORÓW
Celem ćwiczenia jest zapoznanie się z jednym z podstawowych filarów programowania
obiektowego (polimorfizmu) oraz z
przeciążaniem operatorów w języku C++.
1.
Należy stworzyć 2 klasy macierz i wektor
a.
Każda klasa powinna zawierać 3 konstruktory i destruktor. Konstruktor
podstawowy powinien przyjmować parametry wielkości macierzy/wektora,
natomiast drugi konstruktor powinien
zawierać dodatkowo wskaźnik na
macierz/wektor
inicjalizujący elementy w tworzonej klasie. Ostatni konstruktor to
konstruktor kopiujący, który powinien stworzyć nowy obiekt wykorzystując
informacje o obiekcie kopiowanym.
b.
Klasa musi zawierać metody dostępowe do wartości macierzy/wektora oraz jego
rozmiarów,
c.
Klasa powinna zawierać metody pozwalające na dodawanie, odejmowanie,
mnożenie i dzielenie macierzy/wektorów,
d.
Każda z metod powinna być napisana kilka razy (musi mieć te same nazwy i
inne parametry) tak ab
y można było wykonywać operacje zamiennie pomiędzy
klasą macierz i klasą wektor.
2.
W każdej klasie należy przeciążyć operatory dodawania, odejmowania, mnożenia i
dzielenia:
a.
Operatory powinny być dostępne publicznie i powinny wywoływać prywatne
metody z zadania 1,
b.
W miarę możliwości należy mieszać typy parametrów (np. w klasie macierz
można zrobić prawostronne mnożenie przez wektor),
c.
Należy zwrócić uwagę na typ zwracany przez operatory – powinien być to obiekt
stworz
ony za pomocą konstruktora kopiującego.
Uwagi:
W metodach klas n
ie wolno używać funkcji typu : printf, scanf, std::cout, std::cin.
Warstwa prezentacji musi zostać zaimplementowana w pętli głównej (poza klasą),
W plikach nagłówkowych (*.h) nie wolno zawierać źródła/rozwinięcia funkcji i metod
klasowych (dotyczy to także konstruktorów i destruktora),
Powyższe uwagi obowiązują na wszystkich laboratoriach.