Thinking in C++. Edycja polska. Tom 2
- Autorzy:
- Bruce Eckel, Chuck Allison
- Ocena:
- 5.0/6 Opinie: 9
- Stron:
- 688
- Druk:
- oprawa miękka
Opis książki: Thinking in C++. Edycja polska. Tom 2
Szkoła programowania Bruce"a Eckela!
Podczas nauki tworzenia aplikacji w języku C++ towarzyszyć Ci będzie jeden z najlepszych dydaktyków programowania na świecie!
Nauka języka C++ i szczegółowe poznanie jego możliwości to poważne wyzwanie nie tylko dla początkującego, ale również dla zaawansowanego programisty. W książce "Thinking in C++. Edycja polska" Bruce Eckel w doskonały sposób przedstawił podstawowe zagadnienia związane z tym językiem. Jeśli opanowałeś materiał z tej książki, możesz rozpocząć lekturę drugiego tomu.
Następnym krokiem jest -- "Thinking in C++. Edycja polska. Tom II" -- kolejny bestseller Bruce"a Eckela poświęcony językowi C++. Tym razem Bruce w typowy dla siebie, prosty i zrozumiały sposób opisuje zaawansowane aspekty programowania w C++. Dowiesz się, jak korzystać z referencji, przeciążania operatorów, dziedziczenia i obiektów dynamicznych, a także poznasz zagadnienia zaawansowane -- prawidłowe użycie szablonów, wyjątków i wielokrotnego dziedziczenia. Wszystkie tematy opatrzone są ćwiczeniami.
- obsługa wyjątków
- programowanie defensywne
- standardowa biblioteka C++
- strumienie wejścia-wyjścia
- wzorce projektowe
- zaawansowane metody programowania obiektowego
- współbieżność
Kody źródłowe znajdujące się w książce są zgodne z wieloma kompilatorami C++.
O autorach:Bruce Eckel jest prezesem MindView, Inc., firmy prowadzącej zarówno otwarte jak i zamknięte kursy treningowe; zajmującej się też doradztwem, nadzorem i kontrolą nad projektami związanymi z technologiami obiektowymi i wzorcami projektowymi. [więcej...]
Chuck Allison jest matematykiem, pełniącym obecnie funkcję wykładowcy na wydziale informatyki uniwersytetu stanowego Utah Valley. Do niedawna pełnił funkcję redaktora w magazynie C/C++ Users Journal. [więcej...]
Wybrane bestsellery
-
Autor tego zbioru zadań jest programistą i nauczycielem. To prawdziwy pasjonat programowania ― w tym w języku C++ ― które traktuje jak przedłużenie ludzkiej mowy. Uważa, że praktycznie na wszystko, co robimy w życiu, można spojrzeć jak na wykonywanie funkcji i algorytmów, które opisuj...(0,00 zł najniższa cena z 30 dni)
22.20 zł
37.00 zł(-40%) -
To kolejne wydanie lubianego samouczka, dzięki któremu w ramach 24 godzinnych lekcji przyswoisz solidne podstawy programowania. Zrozumiesz, jak działają programy, i nauczysz się reguł stosowanych przez profesjonalistów przy ich projektowaniu. Dowiesz się, jak wygląda świat programistów i na czym ...
Programowanie dla początkujących w 24 godziny. Wydanie IV Programowanie dla początkujących w 24 godziny. Wydanie IV
(0,00 zł najniższa cena z 30 dni)41.40 zł
69.00 zł(-40%) -
Książka, którą trzymasz w rękach, to kontynuacja genialnego kompendium Opus magnum C++11. Programowanie w języku C++. Autor, wybitny specjalista z ogromnym doświadczeniem w międzynarodowych projektach i twórca niezwykle popularnego podręcznika Symfonia C++, postanowił uzupełnić swoje dzieło o zag...
Opus magnum C++. Misja w nadprzestrzeń C++14/17. Tom 4 Opus magnum C++. Misja w nadprzestrzeń C++14/17. Tom 4
(0,00 zł najniższa cena z 30 dni)24.50 zł
49.00 zł(-50%) -
C++ to bez wątpienia jeden z najpopularniejszych i najpotężniejszych języków programowania. Znajduje zastosowanie w tworzeniu systemów operacyjnych, sterowników przemysłowych, bibliotek, gier komputerowych, najrozmaitszych aplikacji desktopowych, programów bazodanowych i oprogramowania serweroweg...
C++. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie III C++. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie III
(0,00 zł najniższa cena z 30 dni)11.90 zł
39.90 zł(-70%) -
Autor tej książki — wybitny specjalista pracujący nad wieloma znaczącymi projektami we francuskich, niemieckich i włoskich instytutach fizyki jądrowej, znany czytelnikom m.in. z genialnej Symfonii C++ — postawił sobie za cel napisanie nowej, przekrojowej książki o tym języku, która w ...
Opus magnum C++11. Programowanie w języku C++. Wydanie II poprawione (komplet) Opus magnum C++11. Programowanie w języku C++. Wydanie II poprawione (komplet)
(0,00 zł najniższa cena z 30 dni)119.40 zł
199.00 zł(-40%) -
Unreal Engine 5. Kurs video. Praktyczny niezbędnik game developera to ponad 6 godzin praktycznej wiedzy i budowania funkcjonalności, prototypowania mechaniki, a także iterowania produkcji. Na początku zaznajomisz się z edytorem i możliwościami narzędzia Unreal Engine 5. Nauczysz się stosować pred...
Unreal Engine 5. Kurs video. Praktyczny niezbędnik game developera Unreal Engine 5. Kurs video. Praktyczny niezbędnik game developera
(0,00 zł najniższa cena z 30 dni)81.95 zł
149.00 zł(-45%) -
Oto polska edycja popularnego podręcznika opartego na naukowych podstawach skutecznego uczenia. To znakomite wprowadzenie do podstawowych technik programowania i umiejętności projektowania pozwala łatwo, a przy tym dogłębnie opanować elementarne pojęcia. W przystępny sposób omawia najistotniejsze...
Wprowadzenie do C++. Efektywne nauczanie. Wydanie III Wprowadzenie do C++. Efektywne nauczanie. Wydanie III
(0,00 zł najniższa cena z 30 dni)99.50 zł
199.00 zł(-50%) -
Książka "UML 2.0. Wprowadzenie" w praktyczny sposób przedstawia techniki modelowania systemów informatycznych za pomocą języka UML 2.0.(0,00 zł najniższa cena z 30 dni)
22.20 zł
37.00 zł(-40%) -
Nie pamiętasz jakiegoś algorytmu? Nie wiesz, jaką strukturę danych należy zastosować? Nie masz pojęcia, jak wyznaczyć złożoność obliczeniową algorytmu? Nie martw się, Twoje problemy należą już do przeszłości! Tablice informatyczne. Algorytmy pozwolą Ci szybko odnaleźć i przypomnieć sobie podstawo...(0,00 zł najniższa cena z 30 dni)
10.20 zł
17.00 zł(-40%) -
Tablice informatyczne. C++" zawierają zestawienie najpotrzebniejszych informacji dotyczących języka C++. Każdy programista doceni je, gdy podczas pracy nie będzie miał czasu na wertowanie kilkunastu książek.(0,00 zł najniższa cena z 30 dni)
6.45 zł
12.90 zł(-50%)
Bruce Eckel, Chuck Allison - pozostałe książki
-
Atomowy Kotlin to książka dla wszystkich, którzy chcą nauczyć się Kotlina stosunkowo młodego, ale bardzo popularnego i pożądanego na rynku pracy języka programowania. Nieważne, czy jesteś początkującym, czy doświadczonym programistą, dzięki tej publikacji Kotlin nie będzie miał dla Ciebie żadny...(90.35 zł najniższa cena z 30 dni)
113.73 zł
139.00 zł(-18%)
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Recenzje książki: Thinking in C++. Edycja polska. Tom 2 (1)
Poniższe recenzje mogły powstać po przekazaniu recenzentowi darmowego egzemplarza poszczególnych utworów bądź innej zachęty do jej napisania np. zapłaty.
-
Dziennik Łódzki N; 28 lipca 2004
C++ - idźmy dalej
Tych programistów, którzy ą po lekturze wydanej przez blisko dwoma laty „Thinking in C++. Edycja polska”, nie trzeba chyba namawiać do sięgnięcia po drugi tom bestsellerowego dzieła Bruce’a Eckela. Gdy wcześniej autor przedstawił podstawowe zagadnienia związane z językiem C++, to w drugim tomie książki, udostępnionym polskim czytelnikom przez Helion - poszedł dalej. Przy czym, co godne zauważenia, nadal w sposób prosty i zrozumiały prezentuje problemy, tyle ze już związane z zaawansowanymi aspektami programowania w języku C++. Czytelnik dowiaduje się, jak korzystać z referencji, przeciążania operatorów, dziedziczenia i obiektów dynamicznych, a także pozna zagadnienia bardziej złożone - prawidłowe użycie szablonów, wyjątków i wielokrotnego dziedziczenia. Wszystko to poprzez ćwiczenia.
Szczegóły książki
- Tytuł oryginału:
- Thinking in C++, Vol. 2: Practical Programming, Second Edition
- Tłumaczenie:
- Przemysław Szeremiota, Tomasz Żmijewski
- ISBN Książki drukowanej:
- 83-736-1409-5, 8373614095
- Data wydania książki drukowanej:
- 2004-03-30
- Format:
- B5
- Numer z katalogu:
- 2359
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Erraty / Zgłoś erratę
- Kategorie:
Programowanie » C++ - Programowanie
Spis treści książki
- Cele (11)
- Rozdziały (12)
- Ćwiczenia (14)
- Rozwiązania do ćwiczeń (14)
- Kod źródłowy (15)
- Obsługiwane wersje języka (16)
- Standardy językowe (17)
- O okładce (17)
- Tradycyjna obsługa błędów (22)
- Wyrzucanie wyjątku (24)
- Przechwytywanie wyjątku (25)
- Blok try (25)
- Obsługa wyjątków (25)
- Zakończenie i kontynuacja (26)
- Dopasowywanie wyjątków (27)
- Przechwytywanie dowolnych wyjątków (29)
- Ponowne wyrzucanie wyjątku (29)
- Wyjątki nieprzechwycone (30)
- Czyszczenie (32)
- Zarządzanie zasobami (33)
- Wszystko jest obiektem (34)
- auto_ptr (36)
- Bloki try na poziomie funkcji (38)
- Wyjątki standardowe (39)
- Specyfikacje wyjątków (41)
- Jakieś lepsze specyfikacje wyjątków? (45)
- Specyfikacja wyjątków i dziedziczenie (45)
- Kiedy nie używać specyfikacji wyjątków? (46)
- Bezpieczeństwo wyjątków (47)
- Programowanie z użyciem wyjątków (50)
- Kiedy unikać wyjątków? (51)
- Typowe zastosowania wyjątków (52)
- Narzuty (55)
- Podsumowanie (57)
- Ćwiczenia (57)
- Asercje (61)
- Najprostszy system testów jednostkowych, który ma szansę zadziałać (65)
- Automatyczne testowanie (66)
- Szkielet TestSuite (70)
- Zestawy testowe (73)
- Kod szkieletu testowego (74)
- Techniki usuwania błędów (79)
- Makra śledzące (79)
- Plik śladu (80)
- Znajdowanie wycieków pamięci (81)
- Podsumowanie (86)
- Ćwiczenia (86)
- Czym jest łańcuch? (94)
- Tworzenie i inicjalizacja łańcuchów C++ (95)
- Operacje na łańcuchach (98)
- Dodawanie, wstawianie i łączenie łańcuchów (98)
- Podmiana znaków łańcucha (100)
- Sklejanie za pomocą przeciążonych operatorów spoza klasy (103)
- Szukanie w łańcuchach (104)
- Znajdowanie od końca (107)
- Znajdowanie pierwszego i ostatniego ze zbioru znaków (109)
- Usuwanie znaków z łańcuchów (111)
- Porównywanie łańcuchów (112)
- Łańcuchy a znaki (116)
- Przykład zastosowania łańcuchów (121)
- Podsumowanie (125)
- Ćwiczenia (126)
- Po co nowa biblioteka? (129)
- Iostream przybywa z odsieczą (133)
- Wstawianie i pobieranie (134)
- Typowe zastosowania (137)
- Dane wejściowe pobierane wierszami (139)
- Obsługa błędów strumieni (140)
- Strumienie związane z plikami (143)
- Przykład przetwarzania pliku (143)
- Tryby otwarcia (145)
- Buforowanie strumieni (146)
- Przeszukiwanie strumieni wejścia-wyjścia (148)
- Strumienie powiązane z łańcuchami (151)
- Łańcuchowe strumienie wejściowe (152)
- Łańcuchowe strumienie wyjściowe (153)
- Formatowanie strumieni wyjściowych (156)
- Flagi formatujące (156)
- Pola formatujące (158)
- Szerokość, wypełnienie, dokładność (159)
- Kompletny przykład (160)
- Manipulatory (162)
- Manipulatory z argumentami (163)
- Tworzenie manipulatorów (166)
- Efektory (167)
- Przykłady wykorzystujące iostream (169)
- Zarządzanie kodem źródłowym biblioteki klas (169)
- Wykrywanie błędów kompilatora (173)
- Prosty rejestrator danych (175)
- Obsługa wielu języków (179)
- Strumienie znaków szerokich (179)
- Ustawienia lokalne (181)
- Podsumowanie (183)
- Ćwiczenia (183)
- Parametry szablonów (187)
- Parametry szablonów niebędące typami (188)
- Domyślne argumenty szablonów (190)
- Szablony jako parametry szablonów (191)
- Słowo kluczowe typename (196)
- Użycie słowa kluczowego template jako wskazówki (198)
- Szablony składowe (199)
- Szablony funkcji (201)
- Dedukowanie typu argumentów szablonu funkcji (202)
- Przeciążanie szablonów funkcji (205)
- Pobieranie adresu wygenerowanej z szablonu funkcji (206)
- Stosowanie funkcji do sekwencji STL (209)
- Częściowe uporządkowanie szablonów funkcji (212)
- Specjalizacja szablonów (213)
- Specjalizacja jawna (214)
- Specjalizacja częściowa (215)
- Przykład praktyczny (217)
- Unikanie nadmiarowego kodu (220)
- Odszukiwanie nazw (224)
- Nazwy w szablonach (224)
- Szablony i funkcje zaprzyjaźnione (228)
- Idiomy programowania za pomocą szablonów (233)
- Cechy charakterystyczne (233)
- Reguły (238)
- Tajemniczo powtarzający się wzorzec szablonów (240)
- Szablony i metaprogramowanie (242)
- Programowanie na poziomie kompilacji (243)
- Szablony wyrażeń (251)
- Modele kompilacji szablonów (256)
- Model włączania (256)
- Ukonkretnianie jawne (257)
- Model separacji (259)
- Podsumowanie (260)
- Ćwiczenia (261)
- Algorytmy uogólnione - wprowadzenie (265)
- Predykaty (268)
- Iteratory strumieni (270)
- Złożoność algorytmu (272)
- Obiekty funkcyjne (274)
- Klasyfikacja obiektów funkcyjnych (275)
- Automatyczne tworzenie obiektów funkcyjnych (276)
- Adaptowalność obiektów funkcyjnych (279)
- Więcej przykładów wykorzystania obiektów funkcyjnych (281)
- Adaptery wskaźników do funkcji (287)
- Pisanie własnych adapterów obiektów funkcyjnych (293)
- Katalog algorytmów STL (297)
- Narzędzia przydatne w tworzeniu przykładów (299)
- Wypełnianie i generowanie sekwencji (303)
- Zliczanie (304)
- Manipulowanie sekwencjami (305)
- Wyszukiwanie i zastępowanie elementów (310)
- Porównywanie sekwencji (316)
- Usuwanie elementów sekwencji (319)
- Sortowanie i operacje na sekwencjach posortowanych (322)
- Operacje na stertach (331)
- Wykonywanie operacji na wszystkich elementach sekwencji (332)
- Algorytmy numeryczne (339)
- Narzędzia (342)
- Tworzenie własnych algorytmów uogólnionych (343)
- Podsumowanie (345)
- Ćwiczenia (345)
- Kontenery i iteratory (351)
- Dokumentacja biblioteki STL (353)
- Wprowadzenie (353)
- Kontenery przechowujące ciągi znakowe (358)
- Dziedziczenie po kontenerach STL (360)
- Kraina iteratorów (362)
- Iterator w kontenerach dwukierunkowych (364)
- Kategorie iteratorów (365)
- Iteratory predefiniowane (367)
- Kontenery sekwencyjne: vector, list i deque (373)
- Podstawowe operacje na kontenerach sekwencyjnych (373)
- Kontener typu vector (376)
- Kontener typu deque (383)
- Konwersja sekwencji (385)
- Kontrolowany dostęp swobodny (387)
- Kontener typu list (388)
- Wymienianie całych sekwencji (393)
- Kontener typu set (394)
- Klasa iteratora słów (397)
- Szablon stack (402)
- Szablon queue (405)
- Kolejki priorytetowe (410)
- Przechowywanie bitów (418)
- Typ bitset<n> (419)
- Typ vector<bool> (422)
- Kontenery asocjacyjne (424)
- Generowanie elementów i wypełnianie kontenerów asocjacyjnych (428)
- Magia kontenerów typu map (431)
- Kontener typu multimap (433)
- Kontener typu multiset (436)
- Korzystanie z wielu kontenerów STL (439)
- Czyszczenie kontenera wskaźników (442)
- Tworzenie własnych kontenerów (444)
- Rozszerzenia biblioteki STL (446)
- Kontenery spoza STL (448)
- Podsumowanie (452)
- Ćwiczenia (453)
- Rzutowanie w czasie wykonania (459)
- Operator typeid (464)
- Rzutowanie na pośrednie poziomy hierarchii klas (466)
- Wskaźniki na typ void (467)
- RTTI a szablony (468)
- Wielodziedziczenie (469)
- Zastosowania mechanizmu RTTI (470)
- Sortownia odpadków (471)
- Implementacja i narzuty mechanizmu RTTI (475)
- Podsumowanie (475)
- Ćwiczenia (476)
- Wprowadzenie do wielodziedziczenia (479)
- Dziedziczenie interfejsu (481)
- Dziedziczenie implementacji (484)
- Duplikaty podobiektów (489)
- Wirtualne klasy bazowe (493)
- Wyszukiwanie nazw (502)
- Unikanie wielodziedziczenia (504)
- Rozszerzanie interfejsu (506)
- Podsumowanie (509)
- Ćwiczenia (510)
- Pojęcie wzorca (513)
- Wyższość kompozycji nad dziedziczeniem (515)
- Klasyfikacja wzorców (515)
- Właściwości, pojęcia, wzorce (516)
- Upraszczanie pojęć (516)
- Posłaniec (517)
- Parametr zbiorczy (518)
- Singleton (519)
- Odmiany Singletona (520)
- Polecenie - wybór operacji (524)
- Polecenia izolujące obsługę zdarzeń (526)
- Izolowanie obiektów (529)
- Pośrednik - dostęp do innego obiektu (529)
- Stan - modyfikowanie czynności obiektu (531)
- Adapter (532)
- Metoda szablonowa (535)
- Strategia - dynamiczny wybór algorytmu (536)
- Łańcuch odpowiedzialności - wypróbowywanie sekwencji strategii (537)
- Fabryki - hermetyzacja procesu tworzenia obiektu (540)
- Fabryki polimorficzne (542)
- Fabryka abstrakcyjna (545)
- Konstruktory wirtualne (547)
- Builder - tworzenie złożonych obiektów (552)
- Obserwator (558)
- Pojęcie klasy wewnętrznej (561)
- Przykład zastosowania Obserwatora (564)
- Dyspozycja wielokrotna (567)
- Wielokrotna dyspozycja z wzorcem Wizytator (571)
- Podsumowanie (575)
- Ćwiczenia (575)
- Motywacja (580)
- Współbieżność w języku C++ (582)
- Instalacja biblioteki ZThread (582)
- Definiowanie zadań (584)
- Klasa Thread (585)
- Tworzenie interfejsu użytkownika o krótkim czasie odpowiedzi (587)
- Uproszczenie kodu z wykorzystaniem Wykonawców (589)
- Tymczasowe zawieszanie działania wątków (592)
- Usypianie wątków (594)
- Priorytety wątków (595)
- Współdzielenie ograniczonych zasobów (597)
- Gwarantowanie istnienia obiektów (597)
- Niewłaściwe odwołania do zasobów (601)
- Kontrola dostępu (603)
- Uproszczenie kodu z wykorzystaniem Strażników (605)
- Pamięć lokalna wątku (608)
- Zatrzymywanie zadań (610)
- Zapobieganie kolizji odwołań do strumieni wejścia-wyjścia (610)
- Ogród botaniczny (611)
- Zatrzymywanie zadań zablokowanych (616)
- Przerwanie (617)
- Współpraca wątków (623)
- Oczekiwanie i nadawanie sygnałów (623)
- Zależności typu producent-konsument (627)
- Rozwiązywanie problemów wielowątkowości przez kolejkowanie (630)
- Sygnalizacja rozgłoszeniowa (635)
- Zakleszczenie (641)
- Podsumowanie (647)
- Ćwiczenia (649)
- Język C++ (655)
- Książki Bruce'a Eckela (656)
- Książki Chucka Allisona (657)
- Zaawansowane omówienia języka C++ (658)
- Książki o wzorcach projektowych (660)
Wstęp (11)
Część I Tworzenie niezawodnych systemów (19)
Rozdział 1. Obsługa wyjątków (21)
Rozdział 2. Programowanie defensywne (59)
Część II Standardowa biblioteka C++ (91)
Rozdział 3. Wszystko o łańcuchach (93)
Rozdział 4. Strumienie wejścia-wyjścia (129)
Rozdział 5. Wszystko o szablonach (187)
Rozdział 6. Algorytmy uogólnione (265)
Rozdział 7. Kontenery (351)
Część III Zagadnienia zaawansowane (457)
Rozdział 8. Rozpoznawanie typu w czasie wykonania programu (459)
Rozdział 9. Wielodziedziczenie (479)
Rozdział 10. Wzorce projektowe (513)
Rozdział 11. Współbieżność (579)
Dodatki (653)
Dodatek A Zalecana lektura (655)
Dodatek B Uzupełnienie (661)
Skorowidz (667)
Oceny i opinie klientów: Thinking in C++. Edycja polska. Tom 2 Bruce Eckel, Chuck Allison (9)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(4)
(3)
(1)
(0)
(1)
(0)
Paweł Paździor, informatyk
Data dodania: 2010-11-18 Ocena: 6 Opinia niepotwierdzona zakupem
cbarT!,
Data dodania: 2008-06-13 Ocena: 6 Opinia niepotwierdzona zakupem
Paweł Wróblewski,
Data dodania: 2005-01-05 Ocena: 6 Opinia niepotwierdzona zakupem
Adam Gawarkiewicz,
Data dodania: 2004-06-02 Ocena: 6 Opinia niepotwierdzona zakupem
Data dodania: 2009-07-14 Ocena: 5 Opinia niepotwierdzona zakupem
Igor Podolak,
Data dodania: 2005-04-26 Ocena: 5 Opinia niepotwierdzona zakupem
Krzysiek Rosiński,
Data dodania: 2004-06-07 Ocena: 5 Opinia niepotwierdzona zakupem
Krzysztof Konopko,
Data dodania: 2007-03-19 Ocena: 4 Opinia niepotwierdzona zakupem
Jakub Mażuchowski, Słuchacz
Data dodania: 2011-04-08 Ocena: 2 Opinia niepotwierdzona zakupem
więcej opinii