Programowanie obiektowe C++ Informatyka/Automatyka i ...
Programowanie obiektowe C++ Informatyka/Automatyka i ...
Programowanie obiektowe C++ Informatyka/Automatyka i ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Dodatkowo obiekt każdej klasy zawiera w sobie po jednym obiekcie klas, od których<br />
bezpośrednio dziedziczy. Przykładowo, obiekt klasy E, dla której klasami podstawowymi<br />
są A, B oraz C, posiada jako komponenty po jednym elemencie typu A, B i C. Dla<br />
każdej z klas zdefiniować konstruktor i destruktor, a następnie w programie głównym<br />
przetestować kolejność ich wywoływania dla obiektu każdego z zadeklarowanych typów.<br />
10. Niech będzie dany następujący typ danych:<br />
class Tablica1D {<br />
protected:<br />
int rozmiar1;<br />
int *tab;<br />
};<br />
reprezentujący dynamiczną tablicę jednowymiarową. Do klasy dodać następujące elementy:<br />
(a) domniemany konstruktor inicjalizujący, destruktor, operator przypisania, oraz metody:<br />
wyprowadzającą zawartość tablicy na ekran, wyznaczającą wartości minimalną0<br />
i maksymalną, sortującą tablicę,<br />
(b) wykorzystać powyższą klasę i stosując mechanizm dziedziczenia napisać definicję<br />
klasy Tablica2D, która będzie posiadała takie same metody operujące na tablicy<br />
dwuwymiarowej, przy czym sortowanie oraz szukanie minimum i maksimum będzie<br />
realizowane dla każdego wiersza osobno, a wynik w przypadku wartości minimalnych<br />
oraz maksymalnych zwróci jako tablicę wartości,<br />
(c) wykorzystując klasę Tablica1D oraz Tablica2D zrobić to samo co w punkcie (b),<br />
tylko dla tablicy trójwymiarowej (sortowanie i szukanie min/max zrealizować w odniesieniu<br />
do pierwszego wymiaru tablicy).<br />
11. Zdefiniować klasę bazową Subject zawierającą trzy funkcje f(), g() i h(). Następnie z<br />
klasy tej wyprowadzić klasy Implementation1, Implementation2 oraz Proxy. Ta ostatnia<br />
powinna zawierać wskaźnik do obiektu typu Subject, a wszystkie jej metody powinny<br />
zwracać i być wywoływane na rzecz wskaźnika takiego właśnie typu obiektu. Konstruktor<br />
klasy Proxy powinien inicjalizować wskaźnik do typu Subject zainstalowanego w jej<br />
wnętrzu. W programie głównym zdefiniować dwa różne obiekty Proxy, posiadające inną<br />
implementację. Następnie zmodyfikować klasę Proxy w sposób umożliwiający dynamiczną<br />
zmianę implementacji tej klasy.