thinking-in-c++.-edycja-polska.-tom-2 full scan, ebooki
[ Pobierz całość w formacie PDF ]
//-->6Thinking in C++. Edycja polska. Tom 2Rozdział 2. Programowanie defensywne ............................................................. 59Asercje...............................................................................................................................61Najprostszy system testów jednostkowych, który ma szansę zadziałać ...........................65Automatyczne testowanie ...........................................................................................66Szkielet TestSuite........................................................................................................70Zestawy testowe..........................................................................................................73Kod szkieletu testowego .............................................................................................74Techniki usuwania błędów................................................................................................79Makra śledzące............................................................................................................79Plik śladu.....................................................................................................................80Znajdowanie wycieków pamięci.................................................................................81Podsumowanie ..................................................................................................................86Ćwiczenia ..........................................................................................................................86Część IIStandardowa biblioteka C++...........................................91Czym jest łańcuch?............................................................................................................94Tworzenie i inicjalizacja łańcuchów C++...........................................................................95Operacje na łańcuchach.....................................................................................................98Dodawanie, wstawianie i łączenie łańcuchów............................................................98Podmiana znaków łańcucha......................................................................................100Sklejanie za pomocą przecią onych operatorów spoza klasy...................................103Szukanie w łańcuchach ...................................................................................................104Znajdowanie od końca ..............................................................................................107Znajdowanie pierwszego i ostatniego ze zbioru znaków..........................................109Usuwanie znaków z łańcuchów ................................................................................111Porównywanie łańcuchów ........................................................................................112Łańcuchy a znaki ......................................................................................................116Przykład zastosowania łańcuchów ..................................................................................121Podsumowanie ................................................................................................................125Ćwiczenia ........................................................................................................................126Rozdział 3. Wszystko o łańcuchach.................................................................... 93Rozdział 4. Strumienie wejścia-wyjścia............................................................. 129Po co nowa biblioteka? ...................................................................................................129Iostream przybywa z odsieczą.........................................................................................133Wstawianie i pobieranie............................................................................................134Typowe zastosowania ...............................................................................................137Dane wejściowe pobierane wierszami ......................................................................139Obsługa błędów strumieni...............................................................................................140Strumienie związane z plikami .......................................................................................143Przykład przetwarzania pliku....................................................................................143Tryby otwarcia ..........................................................................................................145Buforowanie strumieni....................................................................................................146Przeszukiwanie strumieni wejścia-wyjścia .....................................................................148Strumienie powiązane z łańcuchami ...............................................................................151Łańcuchowe strumienie wejściowe ..........................................................................152Łańcuchowe strumienie wyjściowe ..........................................................................153Formatowanie strumieni wyjściowych............................................................................156Flagi formatujące ......................................................................................................156Pola formatujące .......................................................................................................158Szerokość, wypełnienie, dokładność ........................................................................159Kompletny przykład..................................................................................................160Spis treści7Manipulatory ...................................................................................................................162Manipulatory z argumentami....................................................................................163Tworzenie manipulatorów ........................................................................................166Efektory.....................................................................................................................167Przykłady wykorzystujące iostream................................................................................169Zarządzanie kodem źródłowym biblioteki klas ........................................................169Wykrywanie błędów kompilatora.............................................................................173Prosty rejestrator danych...........................................................................................175Obsługa wielu języków ...................................................................................................179Strumienie znaków szerokich ...................................................................................179Ustawienia lokalne....................................................................................................181Podsumowanie ................................................................................................................183Ćwiczenia ........................................................................................................................183Rozdział 5. Wszystko o szablonach .................................................................. 187Parametry szablonów ......................................................................................................187Parametry szablonów niebędące typami...................................................................188Domyślne argumenty szablonów..............................................................................190Szablony jako parametry szablonów ........................................................................191Słowo kluczowe typename .......................................................................................196U ycie słowa kluczowego template jako wskazówki...............................................198Szablony składowe....................................................................................................199Szablony funkcji..............................................................................................................201Dedukowanie typu argumentów szablonu funkcji....................................................202Przecią anie szablonów funkcji................................................................................205Pobieranie adresu wygenerowanej z szablonu funkcji .............................................206Stosowanie funkcji do sekwencji STL......................................................................209Częściowe uporządkowanie szablonów funkcji .......................................................212Specjalizacja szablonów..................................................................................................213Specjalizacja jawna...................................................................................................214Specjalizacja częściowa ............................................................................................215Przykład praktyczny..................................................................................................217Unikanie nadmiarowego kodu ..................................................................................220Odszukiwanie nazw.........................................................................................................224Nazwy w szablonach.................................................................................................224Szablony i funkcje zaprzyjaźnione ...........................................................................228Idiomy programowania za pomocą szablonów...............................................................233Cechy charakterystyczne ..........................................................................................233Reguły .......................................................................................................................238Tajemniczo powtarzający się wzorzec szablonów ...................................................240Szablony i metaprogramowanie ......................................................................................242Programowanie na poziomie kompilacji ..................................................................243Szablony wyra eń .....................................................................................................251Modele kompilacji szablonów ........................................................................................256Model włączania .......................................................................................................256Ukonkretnianie jawne ...............................................................................................257Model separacji.........................................................................................................259Podsumowanie ................................................................................................................260Ćwiczenia ........................................................................................................................261Rozdział 6. Algorytmy uogólnione..................................................................... 265Algorytmy uogólnione — wprowadzenie ..........................................................................265Predykaty ..................................................................................................................268Iteratory strumieni.....................................................................................................270Zło oność algorytmu ................................................................................................2728Thinking in C++. Edycja polska. Tom 2Obiekty funkcyjne ...........................................................................................................274Klasyfikacja obiektów funkcyjnych .........................................................................275Automatyczne tworzenie obiektów funkcyjnych......................................................276Adaptowalność obiektów funkcyjnych.....................................................................279Więcej przykładów wykorzystania obiektów funkcyjnych ......................................281Adaptery wskaźników do funkcji .............................................................................287Pisanie własnych adapterów obiektów funkcyjnych ................................................293Katalog algorytmów STL................................................................................................297Narzędzia przydatne w tworzeniu przykładów.........................................................299Wypełnianie i generowanie sekwencji......................................................................303Zliczanie....................................................................................................................304Manipulowanie sekwencjami....................................................................................305Wyszukiwanie i zastępowanie elementów................................................................310Porównywanie sekwencji..........................................................................................316Usuwanie elementów sekwencji ...............................................................................319Sortowanie i operacje na sekwencjach posortowanych ............................................322Operacje na stertach..................................................................................................331Wykonywanie operacji na wszystkich elementach sekwencji..................................332Algorytmy numeryczne ............................................................................................339Narzędzia ..................................................................................................................342Tworzenie własnych algorytmów uogólnionych ............................................................343Podsumowanie ................................................................................................................345Ćwiczenia ........................................................................................................................345Rozdział 7. Kontenery...................................................................................... 351Kontenery i iteratory .......................................................................................................351Dokumentacja biblioteki STL...................................................................................353Wprowadzenie.................................................................................................................353Kontenery przechowujące ciągi znakowe.................................................................358Dziedziczenie po kontenerach STL ..........................................................................360Kraina iteratorów.............................................................................................................362Iterator w kontenerach dwukierunkowych................................................................364Kategorie iteratorów .................................................................................................365Iteratory predefiniowane...........................................................................................367Kontenery sekwencyjne: vector, list i deque...................................................................373Podstawowe operacje na kontenerach sekwencyjnych .................................................373Kontener typu vector.................................................................................................376Kontener typu deque .................................................................................................383Konwersja sekwencji ................................................................................................385Kontrolowany dostęp swobodny...............................................................................387Kontener typu list......................................................................................................388Wymienianie całych sekwencji.................................................................................393Kontener typu set ............................................................................................................394Klasa iteratora słów...................................................................................................397Szablon stack...................................................................................................................402Szablon queue .................................................................................................................405Kolejki priorytetowe .......................................................................................................410Przechowywanie bitów ...................................................................................................418Typ bitset<n> ............................................................................................................419Typ vector<bool> .....................................................................................................422Kontenery asocjacyjne ....................................................................................................424Generowanie elementów i wypełnianie kontenerów asocjacyjnych ........................428Magia kontenerów typu map ....................................................................................431Kontener typu multimap ...........................................................................................433Kontener typu multiset..............................................................................................436Spis treści9Korzystanie z wielu kontenerów STL.............................................................................439Czyszczenie kontenera wskaźników ...............................................................................442Tworzenie własnych kontenerów....................................................................................444Rozszerzenia biblioteki STL ...........................................................................................446Kontenery spoza STL......................................................................................................448Podsumowanie ................................................................................................................452Ćwiczenia ........................................................................................................................453Część III Zagadnienia zaawansowane .........................................457Rozdział 8. Rozpoznawanie typu w czasie wykonania programu......................... 459Rzutowanie w czasie wykonania.....................................................................................459Operator typeid................................................................................................................464Rzutowanie na pośrednie poziomy hierarchii klas ...................................................466Wskaźniki na typ void ..............................................................................................467RTTI a szablony........................................................................................................468Wielodziedziczenie .........................................................................................................469Zastosowania mechanizmu RTTI....................................................................................470Sortownia odpadków ................................................................................................471Implementacja i narzuty mechanizmu RTTI...................................................................475Podsumowanie ................................................................................................................475Ćwiczenia ........................................................................................................................476Rozdział 9. Wielodziedziczenie ......................................................................... 479Wprowadzenie do wielodziedziczenia ............................................................................479Dziedziczenie interfejsu ..................................................................................................481Dziedziczenie implementacji ..........................................................................................484Duplikaty podobiektów ...................................................................................................489Wirtualne klasy bazowe ..................................................................................................493Wyszukiwanie nazw........................................................................................................502Unikanie wielodziedziczenia...........................................................................................504Rozszerzanie interfejsu ...................................................................................................506Podsumowanie ................................................................................................................509Ćwiczenia ........................................................................................................................510Rozdział 10. Wzorce projektowe ........................................................................ 513Pojęcie wzorca.................................................................................................................513Wy szość kompozycji nad dziedziczeniem..............................................................515Klasyfikacja wzorców .....................................................................................................515Właściwości, pojęcia, wzorce ...................................................................................516Upraszczanie pojęć..........................................................................................................516Posłaniec ...................................................................................................................517Parametr zbiorczy .....................................................................................................518Singleton..........................................................................................................................519Odmiany Singletona..................................................................................................520Polecenie — wybór operacji ...........................................................................................524Polecenia izolujące obsługę zdarzeń.........................................................................526Izolowanie obiektów .......................................................................................................529Pośrednik — dostęp do innego obiektu ....................................................................529Stan — modyfikowanie czynności obiektu ..............................................................531Adapter ............................................................................................................................532Metoda szablonowa.........................................................................................................535Strategia — dynamiczny wybór algorytmu ....................................................................536Łańcuch odpowiedzialności — wypróbowywanie sekwencji strategii ................................537
[ Pobierz całość w formacie PDF ]