pełna wersja(3), ebooki
[ Pobierz całość w formacie PDF ]
//-->4C++. Sztuka programowaniaOdzyskiwanie pamięci za pomocą funkcji collect() .................................................. 46Przecią one operatory przypisania ............................................................................ 48Konstruktor kopiujący klasy GCPtr .......................................................................... 50Operatory wskaźnikowe i funkcja konwertująca....................................................... 51Funkcje begin() i end().............................................................................................. 52Funkcja shutdown()................................................................................................... 53Dwie funkcje pomocnicze ......................................................................................... 53Klasa GCInfo................................................................................................................... 54Klasa Iter ......................................................................................................................... 55Jak u ywać klasy GCPtr? ................................................................................................ 57Obsługa wyjątków alokacji pamięci.......................................................................... 58Bardziej interesujący przykład .................................................................................. 59Alokowanie i porzucanie obiektów ........................................................................... 61Alokowanie tablic ..................................................................................................... 63U ycie GCPtr z typami klasowymi ........................................................................... 65Większy program demonstracyjny ............................................................................ 67Testowanie obcią enia .............................................................................................. 72Kilka ograniczeń ....................................................................................................... 74Pomysły do wypróbowania ............................................................................................. 75Rozdział 3. Wielowątkowość w C++................................................................... 77Czym jest wielowątkowość? ........................................................................................... 78Wielowątkowość zmienia architekturę programu ..................................................... 78Dlaczego język C++ nie ma wbudowanej obsługi mechanizmu wielowątkowości? ....... 79Jaki system operacyjny i kompilator wybrać? ................................................................. 80Przegląd funkcji obsługi wątków w Windows................................................................. 81Tworzenie i zatrzymywanie wątku............................................................................ 81Inne funkcje obsługi wątków dostępne w Visual C++ .............................................. 82Wstrzymywanie i wznawianie wątku........................................................................ 84Zmiana priorytetu wątku ........................................................................................... 84Pobieranie uchwytu głównego wątku........................................................................ 86Zagadnienie synchronizacji....................................................................................... 86Tworzenie panelu kontrolnego wątków........................................................................... 90Panel kontrolny wątku............................................................................................... 91Panel kontrolny wątku pod lupą................................................................................ 95Prezentacja działania panelu kontrolnego ............................................................... 101Wielowątkowy mechanizm odzyskiwania pamięci ....................................................... 106Dodatkowe zmienne składowe................................................................................ 107Konstruktor wielowątkowej klasy GCPtr................................................................ 107Wyjątek TimeOutExc.............................................................................................. 109Wielowątkowy destruktor klasy GCPtr................................................................... 110Funkcja gc() ............................................................................................................ 110Funkcja isRunning()................................................................................................ 111Synchronizacja dostępu do listy gclist .................................................................... 111Dwie inne zmiany ................................................................................................... 112Kompletny kod wielowątkowego mechanizmu odzyskiwania pamięci .................. 112U ycie wielowątkowego mechanizmu odzyskiwania pamięci................................ 123Pomysły do wypróbowania ........................................................................................... 128Rozdział 4. Rozszerzanie języka C++ ................................................................ 129Dlaczego nale y u yć translatora?................................................................................. 129Eksperymentalne słowa kluczowe................................................................................. 131Pętla foreach............................................................................................................ 131Wyra enie cases ...................................................................................................... 132Spis treści5Operator typeof ....................................................................................................... 133Pętla repeat-until ..................................................................................................... 134Translator eksperymentalnych elementów języka C++ ................................................. 135U ycie translatora.......................................................................................................... 143Jak działa translator? ..................................................................................................... 144Deklaracje globalne................................................................................................. 144Funkcja main() ........................................................................................................ 145Funkcje gettoken() i skipspaces()............................................................................ 146Przekształcanie pętli foreach ................................................................................... 149Przekształcanie wyra enia cases ............................................................................. 152Przekształcanie operatora typeof............................................................................. 154Przekształcanie pętli repeat-until............................................................................. 155Program demonstracyjny............................................................................................... 157Pomysły do wypróbowania ........................................................................................... 163Rozdział 5. Program do ściągania plików z internetu ........................................ 165Biblioteka WinINet ....................................................................................................... 166Podsystem programu do ściągania pliku z internetu...................................................... 167Ogólny opis działania.............................................................................................. 171Funkcja download() ................................................................................................ 172Funkcja ishttp() ....................................................................................................... 177Funkcja httpverOK() ............................................................................................... 178Funkcja getfname() ................................................................................................. 179Funkcja openfile() ................................................................................................... 179Funkcja update() ..................................................................................................... 180Plik nagłówkowy podsystemu do ściągania plików ...................................................... 181Program prezentujący działanie podsystemu do ściągania plików ................................ 181Program do ściągania plików z graficznym interfejsem u ytkownika........................... 183Kod programu WinDL ............................................................................................ 183Jak działa program WinDL?.................................................................................... 188Pomysły do wypróbowania ........................................................................................... 190Rozdział 6. Obliczenia finansowe w C++........................................................... 191Plan spłaty po yczki...................................................................................................... 192Obliczanie przyszłej wartości lokaty ............................................................................. 193Obliczanie początkowej wartości inwestycjiwymaganej do otrzymania po ądanej przyszłej wartości............................................ 195Obliczanie początkowej wartości inwestycjiwymaganej do otrzymania określonych wypłat .......................................................... 196Obliczanie maksymalnej wielkości regularnej wypłaty z danej lokaty.......................... 198Obliczanie wartości pozostałego kredytu ...................................................................... 200Pomysły do wypróbowania ........................................................................................... 201Rozdział 7. Rozwiązywanie problemów metodami sztucznej inteligencji ............. 203Reprezentacja i terminologia......................................................................................... 204Eksplozje kombinatoryczne........................................................................................... 205Strategie przeszukiwania ............................................................................................... 207Ocenianie strategii przeszukiwania ......................................................................... 207Problem ......................................................................................................................... 208Reprezentacja graficzna .......................................................................................... 208Struktura FlightInfo i klasa Search ................................................................................ 209Przeszukiwanie w głąb .................................................................................................. 211Funkcja match() ...................................................................................................... 216Funkcja find().......................................................................................................... 217Funkcja findroute() ................................................................................................. 2186C++. Sztuka programowaniaWyświetlanie trasy .................................................................................................. 219Analiza przeszukiwania w głąb............................................................................... 220Przeszukiwanie wszerz.................................................................................................. 220Analiza przeszukiwania wszerz............................................................................... 223Dodawanie heurystyk .................................................................................................... 223Przeszukiwania wspinaczkowe ............................................................................... 224Analiza przeszukiwania wspinaczkowego .............................................................. 228Przeszukiwanie najmniejszego kosztu........................................................................... 229Analiza przeszukiwania najmniejszego kosztu ....................................................... 231Znajdowanie wielu rozwiązań ....................................................................................... 231Usuwanie ście ki..................................................................................................... 231Usuwanie wierzchołków ......................................................................................... 232Szukanie optymalnego rozwiązania .............................................................................. 238Wracamy do zgubionych kluczy ................................................................................... 244Pomysły do wypróbowania ........................................................................................... 247Rozdział 8. Tworzenie własnego kontenera STL ................................................ 249Krótkie omówienie biblioteki STL................................................................................ 250Kontenery................................................................................................................ 250Algorytmy ............................................................................................................... 251Iteratory................................................................................................................... 251Inne składniki biblioteki STL ........................................................................................ 251Wymagania stawiane definiowanemu kontenerowi ...................................................... 252Wymagania ogólne ................................................................................................. 252Dodatkowe wymagania dla kontenerów sekwencyjnych ........................................ 254Dodatkowe wymagania dla kontenerów asocjacyjnych .......................................... 254Tworzenie kontenera tablicy dynamicznej ze zmiennymi indeksami............................ 255Jak działa tablica RangeArray? ............................................................................... 255Kompletna klasa RangeArray ................................................................................. 257Klasa RangeArray pod lupą .................................................................................... 266Kilka programów wykorzystujących tablicę RangeArray ....................................... 279Pomysły do wypróbowania ..................................................................................... 288Rozdział 9. Miniinterpreter języka C++............................................................. 289Interpretery kontra kompilatory..................................................................................... 289Opis ogólny interpretera Mini C++ ............................................................................... 290Charakterystyka interpretera Mini C++......................................................................... 291Ograniczenia interpretera Mini C++ ....................................................................... 293Nieformalna teoria języka C++ ..................................................................................... 294Wyra enia języka C++............................................................................................ 295Definiowanie wyra enia.......................................................................................... 295Parser wyra eń .............................................................................................................. 297Kod źródłowy parsera ............................................................................................. 297Wyodrębnianie elementów leksykalnych z kodu źródłowego................................. 309Wyświetlanie błędów składniowych ....................................................................... 314Obliczanie wyra enia .............................................................................................. 315Interpreter Mini C++ ..................................................................................................... 317Funkcja main() ........................................................................................................ 334Wstępny przegląd kodu........................................................................................... 335Funkcja interp()....................................................................................................... 339Obsługa zmiennych lokalnych ................................................................................ 341Wywoływanie funkcji zdefiniowanych przez u ytkownika .................................... 343Przypisywanie wartości zmiennym ......................................................................... 345Wykonywanie instrukcji if ...................................................................................... 347Spis treści7Instrukcje switch i break ......................................................................................... 348Przetwarzanie pętli while ........................................................................................ 350Przetwarzanie pętli do-while................................................................................... 351Pętla for................................................................................................................... 353Obsługa instrukcji cin i cout.................................................................................... 354Biblioteka funkcji interpretera Mini C++ ...................................................................... 356Plik nagłówkowy mccommon.h .................................................................................... 358Kompilacja i konsolidacja interpretera Mini C++ ......................................................... 360Demonstrowanie działania interpretera Mini C++ ........................................................ 360Udoskonalanie interpretera Mini C++ ........................................................................... 368Rozszerzanie interpretera Mini C++.............................................................................. 369Dodawanie nowych elementów języka C++ ........................................................... 369Dodawanie elementów pomocniczych .................................................................... 370Skorowidz ..................................................................................... 371
[ Pobierz całość w formacie PDF ]