16.11.2014 Views

Programowanie obiektowe C++ Informatyka/Automatyka i ...

Programowanie obiektowe C++ Informatyka/Automatyka i ...

Programowanie obiektowe C++ Informatyka/Automatyka i ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!