reklama - zainteresowany?

C++. Sztuka programowania - Helion

C++. Sztuka programowania
Autor: Herbert Schildt
Tytuł oryginału: The Art of C++
Tłumaczenie: Małgorzata Koziej (rozdz. 2), Marcin Miklas (rozdz. 2, 7, 9), Marcin Samodulski (rozdz. 1, 3 - 6, 8)
ISBN: 83-7361-679-9
stron: 384, Format: B5, okładka: miękka
Data wydania: 2004-11-24
Księgarnia: Helion

Cena książki: 39,90 zł

Dodaj do koszyka C++. Sztuka programowania

Tagi: C++ - Programowanie

Poznaj profesjonalne techniki programistyczne

C++ to jeden z najpopularniejszych języków programowania. Ma zwięzłą i elegancką składnię, czytelny i logiczny model obiektów i starannie opracowane biblioteki. Jego możliwości dają programiście niemal nieograniczoną kontrolę nad komputerem. Jednak sprawne i efektywne programowanie w C++ to prawdziwa sztuka. Wymaga staranności, dokładnego zaplanowania tworzonej aplikacji oraz wiedzy o funkcjach i mechanizmach, jakie można zastosować.

Książka "C++. Sztuka programowania" przedstawia profesjonalne sposoby tworzenia aplikacji w języku C++. Nie opisuje podstaw języka - skupia się na tworzeniu praktycznych aplikacji z wykorzystaniem profesjonalnych technik programistycznych. Wykonując zawarte w książce przykłady, rozwiążesz różne zadania programistyczne i osiągniesz biegłość w posługiwaniu się językiem C++.

  • Szablony STL, biblioteki i model obiektowy języka C++
  • Mechanizm odzyskiwania pamięci
  • Wykorzystanie wielowątkowości w aplikacjach
  • Eksperymentalne elementy języka C++
  • Aplikacje internetowe w C++
  • Techniki sztucznej inteligencji
  • Tworzenie własnego interpretera C++

O autorze:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows. [więcej...]

Dodaj do koszyka C++. Sztuka programowania

Dodaj do koszyka C++. Sztuka programowania

Spis treści

C++. Sztuka programowania -- spis treści

O Autorze (9)

Wstęp (11)

Rozdział 1. Potęga C++ (13)

  • Zwięzła, lecz bogata składnia (14)
  • Potężne biblioteki (14)
  • Biblioteka szablonów STL (15)
  • Programista ma władzę (16)
  • Precyzyjne sterowanie (17)
  • Przeciążanie operatorów (17)
  • Przejrzysty, zwięzły model obiektowy (18)
  • Dziedzictwo C++ (18)

Rozdział 2. Prosty mechanizm odzyskiwania pamięci dla języka C++ (21)

  • Porównanie dwóch metod zarządzania pamięcią (22)
    • Plusy i minusy ręcznego zarządzania pamięcią (23)
    • Plusy i minusy mechanizmu odzyskiwania pamięci (24)
    • Możesz mieć obie metody (25)
  • Tworzenie mechanizmu odzyskiwania pamięci w języku C++ (25)
    • Zrozumienie problemu (26)
  • Wybór algorytmu odzyskiwania pamięci (26)
    • Zliczanie referencji (27)
    • Znacz i zamiataj (27)
    • Kopiowanie (27)
    • Który algorytm wybrać? (28)
    • Implementowanie mechanizmu odzyskiwania pamięci (28)
    • Wielowątkowy czy nie? (29)
    • Kiedy odzyskiwać pamięć? (29)
    • Co z auto_ptr? (30)
  • Prosty mechanizm odzyskiwania pamięci w C++ (31)
    • Omówienie klas mechanizmu odzyskiwania pamięci (41)
  • GCPtr szczegółowo (42)
    • Zmienne składowe klasy GCPtr (43)
    • Funkcja findPtrInfo() (44)
    • Definicja typu GCiterator (44)
    • Konstruktor klasy GCPtr (44)
    • Destruktor klasy GCPtr (46)
    • Odzyskiwanie pamięci za pomocą funkcji collect() (46)
    • Przeciążone operatory przypisania (48)
    • Konstruktor kopiujący klasy GCPtr (50)
    • Operatory wskaźnikowe i funkcja konwertująca (51)
    • Funkcje begin() i end() (52)
    • Funkcja shutdown() (53)
    • Dwie funkcje pomocnicze (53)
  • Klasa GCInfo (54)
  • Klasa Iter (55)
  • Jak używać klasy GCPtr? (57)
    • Obsługa wyjątków alokacji pamięci (58)
    • Bardziej interesujący przykład (59)
    • Alokowanie i porzucanie obiektów (61)
    • Alokowanie tablic (63)
    • Użycie GCPtr z typami klasowymi (65)
    • Większy program demonstracyjny (67)
    • Testowanie obciążenia (72)
    • Kilka ograniczeń (74)
  • Pomysły do wypróbowania (75)

Rozdział 3. Wielowątkowość w C++ (77)

  • Czym jest wielowątkowość? (78)
    • Wielowątkowość zmienia architekturę programu (78)
  • Dlaczego język C++ nie ma wbudowanej obsługi mechanizmu wielowątkowości? (79)
  • Jaki system operacyjny i kompilator wybrać? (80)
  • Przegląd funkcji obsługi wątków w Windows (81)
    • Tworzenie i zatrzymywanie wątku (81)
    • Inne funkcje obsługi wątków dostępne w Visual C++ (82)
    • Wstrzymywanie i wznawianie wątku (84)
    • Zmiana priorytetu wątku (84)
    • Pobieranie uchwytu głównego wątku (86)
    • Zagadnienie synchronizacji (86)
  • Tworzenie panelu kontrolnego wątków (90)
    • Panel kontrolny wątku (91)
    • Panel kontrolny wątku pod lupą (95)
    • Prezentacja działania panelu kontrolnego (101)
  • Wielowątkowy mechanizm odzyskiwania pamięci (106)
    • Dodatkowe zmienne składowe (107)
    • Konstruktor wielowątkowej klasy GCPtr (107)
    • Wyjątek TimeOutExc (109)
    • Wielowątkowy destruktor klasy GCPtr (110)
    • Funkcja gc() (110)
    • Funkcja isRunning() (111)
    • Synchronizacja dostępu do listy gclist (111)
    • Dwie inne zmiany (112)
    • Kompletny kod wielowątkowego mechanizmu odzyskiwania pamięci (112)
    • Użycie wielowątkowego mechanizmu odzyskiwania pamięci (123)
  • Pomysły do wypróbowania (128)

Rozdział 4. Rozszerzanie języka C++ (129)

  • Dlaczego należy użyć translatora? (129)
  • Eksperymentalne słowa kluczowe (131)
    • Pętla foreach (131)
    • Wyrażenie cases (132)
    • Operator typeof (133)
    • Pętla repeat-until (134)
  • Translator eksperymentalnych elementów języka C++ (135)
  • Użycie translatora (143)
  • Jak działa translator? (144)
    • Deklaracje globalne (144)
    • Funkcja main() (145)
    • Funkcje gettoken() i skipspaces() (146)
    • Przekształcanie pętli foreach (149)
    • Przekształcanie wyrażenia cases (152)
    • Przekształcanie operatora typeof (154)
    • Przekształcanie pętli repeat-until (155)
  • Program demonstracyjny (157)
  • Pomysły do wypróbowania (163)

Rozdział 5. Program do ściągania plików z internetu (165)

  • Biblioteka WinINet (166)
  • Podsystem programu do ściągania pliku z internetu (167)
    • Ogólny opis działania (171)
    • Funkcja download() (172)
    • Funkcja ishttp() (177)
    • Funkcja httpverOK() (178)
    • Funkcja getfname() (179)
    • Funkcja openfile() (179)
    • Funkcja update() (180)
  • Plik nagłówkowy podsystemu do ściągania plików (181)
  • Program prezentujący działanie podsystemu do ściągania plików (181)
  • Program do ściągania plików z graficznym interfejsem użytkownika (183)
    • Kod programu WinDL (183)
    • Jak działa program WinDL? (188)
  • Pomysły do wypróbowania (190)

Rozdział 6. Obliczenia finansowe w C++ (191)

  • Plan spłaty pożyczki (192)
  • Obliczanie przyszłej wartości lokaty (193)
  • Obliczanie początkowej wartości inwestycji wymaganej do otrzymania pożądanej przyszłej wartości (195)
  • Obliczanie początkowej wartości inwestycji wymaganej do otrzymania określonych wypłat (196)
  • Obliczanie maksymalnej wielkości regularnej wypłaty z danej lokaty (198)
  • Obliczanie wartości pozostałego kredytu (200)
  • Pomysły do wypróbowania (201)

Rozdział 7. Rozwiązywanie problemów metodami sztucznej inteligencji (203)

  • Reprezentacja i terminologia (204)
  • Eksplozje kombinatoryczne (205)
  • Strategie przeszukiwania (207)
    • Ocenianie strategii przeszukiwania (207)
  • Problem (208)
    • Reprezentacja graficzna (208)
  • Struktura FlightInfo i klasa Search (209)
  • Przeszukiwanie w głąb (211)
    • Funkcja match() (216)
    • Funkcja find() (217)
    • Funkcja findroute() (218)
    • Wyświetlanie trasy (219)
    • Analiza przeszukiwania w głąb (220)
  • Przeszukiwanie wszerz (220)
    • Analiza przeszukiwania wszerz (223)
  • Dodawanie heurystyk (223)
    • Przeszukiwania wspinaczkowe (224)
    • Analiza przeszukiwania wspinaczkowego (228)
  • Przeszukiwanie najmniejszego kosztu (229)
    • Analiza przeszukiwania najmniejszego kosztu (231)
  • Znajdowanie wielu rozwiązań (231)
    • Usuwanie ścieżki (231)
    • Usuwanie wierzchołków (232)
  • Szukanie optymalnego rozwiązania (238)
  • Wracamy do zgubionych kluczy (244)
  • Pomysły do wypróbowania (247)

Rozdział 8. Tworzenie własnego kontenera STL (249)

  • Krótkie omówienie biblioteki STL (250)
    • Kontenery (250)
    • Algorytmy (251)
    • Iteratory (251)
  • Inne składniki biblioteki STL (251)
  • Wymagania stawiane definiowanemu kontenerowi (252)
    • Wymagania ogólne (252)
    • Dodatkowe wymagania dla kontenerów sekwencyjnych (254)
    • Dodatkowe wymagania dla kontenerów asocjacyjnych (254)
  • Tworzenie kontenera tablicy dynamicznej ze zmiennymi indeksami (255)
    • Jak działa tablica RangeArray? (255)
    • Kompletna klasa RangeArray (257)
    • Klasa RangeArray pod lupą (266)
    • Kilka programów wykorzystujących tablicę RangeArray (279)
    • Pomysły do wypróbowania (288)

Rozdział 9. Miniinterpreter języka C++ (289)

  • Interpretery kontra kompilatory (289)
  • Opis ogólny interpretera Mini C++ (290)
  • Charakterystyka interpretera Mini C++ (291)
    • Ograniczenia interpretera Mini C++ (293)
  • Nieformalna teoria języka C++ (294)
    • Wyrażenia języka C++ (295)
    • Definiowanie wyrażenia (295)
  • Parser wyrażeń (297)
    • Kod źródłowy parsera (297)
    • Wyodrębnianie elementów leksykalnych z kodu źródłowego (309)
    • Wyświetlanie błędów składniowych (314)
    • Obliczanie wyrażenia (315)
  • Interpreter Mini C++ (317)
    • Funkcja main() (334)
    • Wstępny przegląd kodu (335)
    • Funkcja interp() (339)
    • Obsługa zmiennych lokalnych (341)
    • Wywoływanie funkcji zdefiniowanych przez użytkownika (343)
    • Przypisywanie wartości zmiennym (345)
    • Wykonywanie instrukcji if (347)
    • Instrukcje switch i break (348)
    • Przetwarzanie pętli while (350)
    • Przetwarzanie pętli do-while (351)
    • Pętla for (353)
    • Obsługa instrukcji cin i cout (354)
  • Biblioteka funkcji interpretera Mini C++ (356)
  • Plik nagłówkowy mccommon.h (358)
  • Kompilacja i konsolidacja interpretera Mini C++ (360)
  • Demonstrowanie działania interpretera Mini C++ (360)
  • Udoskonalanie interpretera Mini C++ (368)
  • Rozszerzanie interpretera Mini C++ (369)
    • Dodawanie nowych elementów języka C++ (369)
    • Dodawanie elementów pomocniczych (370)

Skorowidz (371)

Dodaj do koszyka C++. Sztuka programowania

Code, Publish & WebDesing by CATALIST.com.pl



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