reklama - zainteresowany?

Thinking in C++. Edycja polska. Tom 2 - Helion

Thinking in C++. Edycja polska. Tom 2
Autor: Bruce Eckel, Chuck Allison
Tytuł oryginału: Thinking in C++, Vol. 2: Practical Programming, Second Edition
Tłumaczenie: Przemysław Szeremiota, Tomasz Żmijewski
ISBN: 83-7361-409-5
stron: 688, Format: B5, okładka: miękka
Data wydania: 2004-03-30
Księgarnia: Helion

Cena książki: 99,00 zł

Dodaj do koszyka Thinking in C++. Edycja polska. Tom 2

Tagi: C++ - Programowanie | programowanie-kupon

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...]

Dodaj do koszyka Thinking in C++. Edycja polska. Tom 2

Dodaj do koszyka Thinking in C++. Edycja polska. Tom 2

Spis treści

Thinking in C++. Edycja polska. Tom 2 -- spis treści

Wstęp (11)

  • 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)

Część I Tworzenie niezawodnych systemów (19)

Rozdział 1. Obsługa wyjątków (21)

  • 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)

Rozdział 2. Programowanie defensywne (59)

  • 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)

Część II Standardowa biblioteka C++ (91)

Rozdział 3. Wszystko o łańcuchach (93)

  • 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)

Rozdział 4. Strumienie wejścia-wyjścia (129)

  • 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)

Rozdział 5. Wszystko o szablonach (187)

  • 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)

Rozdział 6. Algorytmy uogólnione (265)

  • 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)

Rozdział 7. Kontenery (351)

  • 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)

Część III Zagadnienia zaawansowane (457)

Rozdział 8. Rozpoznawanie typu w czasie wykonania programu (459)

  • 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)

Rozdział 9. Wielodziedziczenie (479)

  • 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)

Rozdział 10. Wzorce projektowe (513)

  • 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)

Rozdział 11. Współbieżność (579)

  • 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)

Dodatki (653)

Dodatek A Zalecana lektura (655)

  • 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)

Dodatek B Uzupełnienie (661)

Skorowidz (667)

Dodaj do koszyka Thinking in C++. Edycja polska. Tom 2

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.