6 Cztery przyklady realizacji ekstensji: - obiekt reprezentujacy tablice stworzona do przechowywania obiektow danego typu - obiekt reprezentujacy tablice stworzona do przechowywania wszystkich rodzajow obiektow - obiekt dziedziczacy po obiekcie reprezentujacym tablice stworzona do przechowywania wszystkich rodzajow obiektow - obiekt reprezentujacy vektor stworzony do przechowywania obiektow danego typu - obiekt reprezentujacy vektor stworzony do przechowywania wszystkich rodzajow obiektow - obiekt dziedziczacy po obiekcie reprezentujacym vektor stworzony do przechowywania wszystkich rodzajow obiektow Ekstensja oparta na tablicach Powinno to byc rozwiazanie szybsze od przechowywania obiektow w vektorze ale ma rowniez wady - roznmiar musi miec okreslony podczas kompilacji, sami musimy napisac obsluge dodawania, pobierania, kasowania obiektow Klasa reprezentujaca tablice stworzona do przechowywania wszystkich rodzajow obiektow jest lepszym rozwiazaniem z tego wzgledu, ze mozemy jej uzyc wielokrotnie - jako obiektu reprezentujacego ekstensje wielu klas. Musimy jedynie pamietac o rzutowaniu przy pobieraniu obiektow. Obiekt reprezentujacy tablice stworzona do przechowywania obiektow danego typu nie moze byc wielokrotnie wykorzystany ale za to nie musimy pamietac o rzutowaniu - wystarcz, ze raz zakodujemy rzutowanie i wiecej sie nie musimy o to martwic. Pewnym kompromisem wydaje sie byc mozliwosc odziedziczenia po klasie reprezentujacej tablice stworzona do przechowywania wszystkich rodzajow obiektow i zakodowanie w tej klasie jedynie funkcji realizujacej rzutowanie Ekstensja oparta na vektorach Wydaje sie to byc rozwiazaniem wolniejszym ale ma rowniez swoje zalety - nieograniczony rozmiar, nie musimy pisac obsluge dodawania, pobierania, kasowania obiektow Klasa reprezentujaca vektor stworzony do przechowywania wszystkich rodzajow obiektow jest lepszym rozwiazaniem z tego wzgledu, ze mozemy go uzyc wielokrotnie - jako obiektu reprezentujacego ekstensje wielu klas. Musimy jedynie pamietac o rzutowaniu przy pobieraniu obiektow. Obiekt reprezentujacy vektor stworzony do przechowywania obiektow danego typu nie moze byc wielokrotnie wykorzystany ale za to nie musimy pamietac o rzutowaniu - wystarcz, ze raz zakodujemy rzutowanie i wiecej sie nie musimy o to martwic. Pewnym kompromisem wydaje sie byc mozliwosc odziedziczenia po klasie reprezentujacej vektor stworzony do przechowywania wszystkich rodzajow obiektow i zakodowanie w tej klasie jedynie funkcji realizujacej rzutowanie