okladka

Jeden z najnowszych produktów firmy Borland, C++Builder Borland Developer Studio 2006, to połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych, zintegrowanego środowiska programistycznego oraz narzędzi służących do modelowania oprogramowania. Pomimo że zaimplementowana w C++Builder wersja języka C++ nie jest dokładnym odzwierciedleniem standardu ANSI, środowisko to zyskało duże uznanie wśród najlepszych programistów, doceniających jego uniwersalność i stabilność.

Książka "C++Builder Borland Developer Studio 2006. Kompendium programisty" przedstawia zasady programowania w języku C++ z wykorzystaniem narzędzia C++Builder 2006. Opisuje zarówno samo środowisko, jak i poszczególne elementy języka. Dzięki niej nauczysz się korzystać z języka UML używanego do projektowania aplikacji oraz dowiesz się, jak realizować projekty, wykorzystując język C++. Poznasz także nowoczesne metodologie tworzenia oprogramowania za pomocą narzędzi typu RAD.

  • Środowisko C++Builder Borland Developer Studio 2006
  • Podstawy języka UML
  • Korzystanie z biblioteki STL
  • Obsługa wyjątków
  • Operacje na systemie plików
  • Programowanie wielowątkowe
  • Komponenty
  • Programowanie grafiki

Poznaj potęgę języka C++
i zdobądź szczególne umiejętności programowania.


Wstęp (11)
Rozdział 1. Środowisko programisty IDE C++Builder Borland Developer Studio 2006 (15)
  • Struktura głównego menu (18)
  • Pasek narzędzi - Speed Bar (47)
    • Inspektor obiektów - Object Inspector (48)
    • Widok struktury obiektów (49)
  • Ogólna postać programu pisanego w C++ (50)
    • Funkcja main() (52)
    • Dyrektywa #include i prekompilacja (53)
    • Konsolidacja (54)
    • Konfiguracja opcji projektu (54)
    • Uruchamiamy program (57)
  • Ogólna postać programu pisanego w C++Builderze BDS 2006 (58)
    • Formularz (59)
    • Zdarzenia (61)
  • Konsola czy formularz? (64)
  • Podsumowanie (64)
Rozdział 2. Język modelowania, model dojrzałości i proces projektowania (65)
  • UML jako język modelowania (65)
  • Zawartość UML (67)
    • Diagramy klas (67)
    • Diagramy obiektów (72)
    • Diagramy komponentów (73)
    • Diagramy elementów zawierających strukturę wewnętrzną (74)
    • Diagramy pakietów (75)
    • Diagramy wdrożenia (76)
    • Diagramy czynności (76)
    • Diagramy przypadków użycia (79)
    • Diagramy stanów (80)
    • Diagramy przebiegu (82)
    • Diagramy współpracy (84)
    • Diagramy komunikacji (84)
    • Diagramy harmonogramowania zadań (85)
    • Mechanizmy rozszerzania (85)
  • Strategia modelowania i dokumentowania (87)
  • Model dojrzałości (88)
  • Proces projektowania (88)
    • Nie tylko IID (90)
  • Podsumowanie (90)
Rozdział 3. Podstawy języka C++ (91)
  • Dyrektywy preprocesora (91)
    • Dyrektywa #include (91)
    • Dyrektywa #define (92)
    • Dyrektywa #undef (92)
    • Dyrektywa #pragma hdrstop (92)
    • Dyrektywa #pragma argsused (92)
    • Dyrektywa #pragma inline (93)
    • Dyrektywa #pragma option (93)
    • Dyrektywa #pragma message (93)
    • Dyrektywa #pragma package(smart_init) (93)
    • Dyrektywa #pragma resource "nazwa_pliku" (93)
    • Dyrektywa #error (94)
    • Dyrektywy kompilacji warunkowej (94)
  • Kategorie typów danych (96)
  • Podstawowe proste typy całkowite i rzeczywiste (96)
    • Typ int (97)
    • Typ double (97)
  • Modyfikatory typów (98)
  • Typy danych Windows (100)
  • Typ Currency (101)
  • Typ void (101)
  • Typy logiczne (101)
  • Typy znakowe (102)
  • Typy łańcuchowe (102)
  • Modyfikatory dostępu const i volatile (103)
  • Specyfikatory klas pamięci (104)
    • Specyfikator extern (104)
    • Specyfikator static (105)
    • Specyfikator register (105)
  • Operatory (105)
  • Typ wyliczeniowy (109)
  • Słowo kluczowe typedef (109)
  • Typ zbiorowy (110)
  • Deklarowanie tablic (111)
  • Instrukcje sterujące przebiegiem programu (113)
    • Instrukcja warunkowa if...else (113)
    • Instrukcja wyboru switch...case...break (115)
    • Instrukcja for (116)
    • Nieskończona pętla for (118)
    • Instrukcja iteracyjna do...while (118)
    • Instrukcja iteracyjna while (119)
    • Instrukcja przerwania wykonywania pętli break (120)
    • Funkcja przerwania programu exit() (121)
    • Funkcja przerwania programu abort() (122)
    • Instrukcja kontynuacji programu continue (122)
  • Funkcje w C++ (122)
    • Rekurencja (124)
    • Przedefiniowywanie funkcji (125)
    • Niejednoznaczność (128)
    • Konwencje wywoływania funkcji (129)
    • Specyfikatory konsolidacji funkcji (129)
  • Wskazania i adresy (129)
    • Operatory wskaźnikowe (133)
    • Wskaźniki i tablice (133)
    • Wielokrotne operacje pośrednie (135)
    • Operatory new i delete (138)
    • Dereferencja wskaźnika (138)
    • Wskaźniki ze słowem kluczowym const (139)
    • Wskaźniki do funkcji (140)
  • Odwołania (145)
    • Parametry odwołaniowe (147)
    • Zwracanie odwołań przez funkcje (149)
  • Struktury (150)
    • Przekazywanie struktur funkcjom (152)
    • Struktury zagnieżdżone (153)
    • Wskaźniki do struktur (155)
    • Samodzielne tworzenie plików nagłówkowych (156)
  • Unie (158)
  • Klasy w C++ (159)
    • Przedstawienie w UML (163)
    • Konstruktor i destruktor (164)
    • Konstruktory kopiowania (166)
    • Inne spojrzenie na klasy. Własności (167)
    • Funkcje ogólne (170)
    • Funkcje z dwoma typami ogólnymi (172)
    • Przedefiniowywanie funkcji ogólnych (172)
    • Klasy ogólne (174)
    • Wzorce klas z wieloma ogólnymi typami danych (176)
    • Wzorzec auto_ptr (177)
    • Dziedziczenie (178)
    • Powiązania (183)
  • Funkcje składowe klas ze specyfikatorami const i volatile (186)
    • Funkcje wewnętrzne (188)
    • Realizacja przekazywania egzemplarzy klas funkcjom (190)
    • Wskaźniki do egzemplarzy klas (191)
    • Operatory (.*) oraz (->*) (193)
    • Wskaźnik this (194)
  • Przeładowywanie operatorów (195)
    • Przeładowywanie jednoargumentowych operatorów ++ oraz - - (196)
    • Przeładowywanie operatorów (!) oraz (!=) (199)
    • Przeładowywanie dwuargumentowego operatora arytmetycznego + (202)
    • Przeładowywanie operatora & (204)
    • Przeładowywanie operatora indeksowania tablic [ ] (205)
  • Funkcje i klasy zaprzyjaźnione (208)
  • Klasy wejścia-wyjścia języka C++ (213)
    • Obsługa plików z wykorzystaniem klasy ios (215)
    • Tablicowe operacje wejścia-wyjścia (217)
  • Modele programistyczne (220)
    • Programowanie sekwencyjne (221)
    • Programowanie strukturalne (221)
    • Programowanie proceduralne (222)
    • Programowanie obiektowe (224)
    • Programowanie zorientowane obiektowo (226)
    • Programowanie generyczne (231)
    • Programowanie aspektowe (231)
    • Narzędzia metaprogramowania w C++ (232)
    • Programowanie oparte na skompilowanych modułach (234)
    • Programowanie wielowątkowe (235)
    • Programowanie komponentowe (235)
  • Podsumowanie (235)
Rozdział 4. Wczesne oraz późne wiązanie (237)
  • Odwołania i wskaźniki do klas pochodnych (237)
  • Funkcje wirtualne w C++ (240)
  • Wirtualne klasy bazowe (243)
  • Funkcje wirtualne w C++Builderze (247)
  • Klasy abstrakcyjne w stylu biblioteki VCL (251)
  • Interfejsy (254)
    • Zliczanie odwołań do interfejsu (255)
    • Identyfikator interfejsu (256)
  • Specyfikator __closure (262)
  • Obszary nazw (265)
  • Operator __classid (265)
  • Funkcja Register() (266)
  • Podsumowanie (266)
Rozdział 5. Tablice (267)
  • Tablice dynamicznie alokowane w pamięci (267)
  • Tablice dynamiczne (270)
  • Tablice otwarte (274)
  • Tablice struktur (276)
    • Tablice wskaźników do struktur (279)
    • Odwołania do elementów tablicy wskaźników do struktur (281)
  • Podsumowanie (284)
Rozdział 6. Biblioteka STL (285)
  • Iteratory (285)
  • Kontenery (286)
    • vector (286)
    • deque (289)
    • list (289)
    • slist (290)
    • set (290)
    • map (291)
    • multiset (292)
    • multimap (293)
    • hash_set (293)
    • hash_map (294)
    • hash_multiset (295)
    • hash_multimap (296)
  • Obiekty funkcyjne (297)
  • Adaptery (300)
    • Adaptery iteratorów (300)
    • Adaptery kontenerów (300)
    • Adaptery obiektów funkcyjnych (302)
  • Algorytmy (303)
  • Alokatory (305)
  • Valarray (306)
  • Podsumowanie (308)
Rozdział 7. Zaawansowane operatory rzutowania typów (309)
  • Operator static_cast (309)
  • Operator dynamic_cast (310)
  • Operator const_cast (313)
  • Operator reinterpret_cast (316)
  • Podsumowanie (317)
Rozdział 8. Informacja czasu wykonania (319)
  • Klasa TObject (319)
  • Hierarchia własności komponentów VCL (323)
  • Czas życia komponentów (324)
  • Moduł typeinfo.h (326)
  • Identyfikacja typów czasu wykonywania (328)
  • Tablica metod wirtualnych (330)
  • Klasa TControl (331)
  • Modyfikator __rtti (333)
  • Podstawowe elementy GUI (334)
  • Przydatne techniki modelowania GUI (335)
  • Agregacje, kompozycje i powiązania klas (339)
  • Podsumowanie (341)
Rozdział 9. Obsługa wyjątków (343)
  • Standardowa obsługa wyjątków (343)
  • Strukturalna obsługa wyjątków (348)
  • Klasy wyjątków (350)
  • Zmienne globalne __throwExceptionName, __throwFileName, __throwLineNumber (354)
  • Zapisywanie nieobsłużonych wyjątków (356)
  • Transformowanie wyjątków Windows (359)
  • Podsumowanie (361)
Rozdział 10. Obsługa plików (363)
  • Klasy TDirectoryListBox, TFileListBox, TDriveComboBox (363)
  • Klasy TActionList, TOpenDialog i TSaveDialog (365)
  • Własność Options klas TOpenDialog i TSaveDialog (372)
  • Klasy TOpenTextFileDialog i TSaveTextFileDialog (374)
  • Klasy TOpenPictureDialog i TSavePictureDialog (374)
  • Klasy TActionManager i TActionMainMenuBar (377)
  • Moduł sysutils (381)
    • Operacje na plikach (382)
    • Atrybuty pliku (392)
    • Określanie rozmiaru katalogu (397)
    • Usuwanie katalogu (397)
    • Operacje na dyskach (398)
    • Operacje na nazwach plików (399)
    • Wzajemne przeszukiwanie katalogów i plików (400)
  • Windows API (403)
  • Klasa TMemoryStream (408)
  • Klasa TFileStream (411)
    • Tworzenie logów wyjątków podczas kopiowania plików (414)
  • Przesyłanie plików przez sieć (415)
  • Funkcja WinExec() (419)
  • Funkcja ShellExecuteEx() (420)
  • Pliki wymiany danych (420)
  • Kompilowanie plików zasobów (422)
  • Klasa TIniFile (424)
  • Drukowanie (428)
    • Klasa TPrintDialog (431)
  • Dokumenty XML (432)
  • Pliki i katalogi w Linuksie (434)
  • Podsumowanie (436)
Rozdział 11. Łańcuchy ANSI (437)
  • Makrodefinicja VCL_IOSTREAM (445)
  • Znaki wielobajtowe (448)
  • Podsumowanie (449)
Rozdział 12. Zmienne o typie modyfikowalnym w czasie wykonywania programu (451)
  • Struktura TVarData (451)
  • Klasa TCustomVariantType (455)
  • Moduł variants (457)
  • Tablice wariantowe (459)
  • Wariantowe tablice otwarte (465)
  • Klient OLE (468)
  • Moduł VarCmplx (471)
    • Liczby zespolone, płaszczyzna liczbowa, moduł i argument liczby (471)
  • Podsumowanie (478)
Rozdział 13. Funkcje FPU i systemowe (479)
  • Funkcje FPU (479)
  • Struktura SYSTEM_INFO (485)
  • Klasa THeapStatus (488)
  • Identyfikator GUID (491)
  • Klasa TRegistry (493)
  • Klasa TRegistryIniFile (496)
  • Podsumowanie (497)
Rozdział 14. Elementy wielowątkowości (499)
  • Wątki i procesy (499)
  • Funkcja _beginthread() (501)
  • Funkcja _beginthreadNT() (504)
  • Funkcja _beginthreadex() (509)
  • Funkcja BeginThread() (509)
  • Zmienne lokalne wątku (514)
  • Klasa TThread (516)
  • Synchronizacja wątków (522)
  • Sekcje krytyczne (527)
  • Wzajemne wykluczenia (529)
  • Uruchamianie zewnętrznych plików wykonywalnych (531)
  • Wielowątkowe operacje na dyskach, katalogach i plikach (532)
  • Zmienna IsMultiThread (535)
  • Podsumowanie (536)
Rozdział 15. Liczby pseudolosowe (537)
  • Funkcje randomize() i random() (538)
  • Losowanie z powtórzeniami (543)
  • Losowanie bez powtórzeń (546)
  • Generatory częściowo uporządkowane (552)
  • Szyfrowanie (560)
  • Podsumowanie (561)
Rozdział 16. Konwersje wielkości liczbowych (563)
  • Podsumowanie (587)
Rozdział 17. Wprowadzenie do grafiki (589)
  • Barwne modele (590)
  • Płótno (593)
  • Mapy bitowe (598)
  • JPEG (603)
    • JPEG 2000 (606)
  • Obraz video (607)
  • Drukowanie grafiki (611)
  • Komponent TChart (612)
  • Podsumowanie (615)
Rozdział 18. Komponentowy model C++Buildera (617)
  • Tworzymy nowy komponent (617)
  • Modyfikacja istniejącego komponentu z biblioteki VCL (626)
  • Komponenty graficzne (631)
  • Harmonogramowanie zadań (637)
  • Usuwanie komponentów z pakietu (644)
  • Komponenty generyczne (645)
  • Podsumowanie (648)
Rozdział 19. Biblioteki DLL (649)
  • Łączenie statyczne. Część I (650)
  • Łączenie statyczne. Część II (652)
  • Ładowanie i zwalnianie bibliotek w czasie działania programu (655)
  • Funkcja DllEntryPoint() (658)
  • Klasy jako elementy bibliotek DLL (661)
  • Bazowe adresy ładowania (664)
  • Określanie adresów funkcji (664)
  • Komponenty i biblioteki DLL (667)
  • Pakiety (670)
  • Zmienna IsLibrary (675)
  • Podsumowanie (675)
Dodatek A GRAPPLE (677)
  • Zbieranie wymagań (678)
    • Modelowanie urządzenia (678)
    • Protokół (678)
    • Interakcje (679)
    • Identyfikacja współpracujących systemów (679)
  • Analiza (680)
    • Przypadki użycia (680)
    • Zmiany stanu systemu (681)
    • Wstępny model klas programu kontrolującego zewnętrzny system wbudowany (682)
  • Projektowanie (682)
    • Statyczny model klas programu kontrolującego zewnętrzny system wbudowany (683)
    • Diagram artefaktów (684)
    • Diagramy czynności (684)
  • Kodowanie (685)
  • Wdrożenie (690)
  • Graficzny interfejs użytkownika (691)
    • Kodowanie (693)
  • Podsumowanie (693)
Dodatek B Together (695)
Literatura (707)
Skorowidz (711)