C Builder Kompendium programisty.pdf

(472 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
C++Builder.
Kompendium programisty
Autor: Andrzej Daniluk
ISBN: 83-7361-028-6
Format: B5, stron: 496
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
Jêzyk C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa by³ kilkakrotnie
uaktualniany w latach 80. i 90. XX wieku. Chocia¿ C++Builder nie jest dok³adnym
odzwierciedleniem standardu ANSI jêzyka C++, to obecna jego wersja przygotowana
przez firmê Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland
C++Builder stanowi po³¹czenie nowoczesnego jêzyka programowania, jakim jest C++,
biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego rodowiska
programisty IDE.
„C++Builder. Kompendium programisty” omawia podstawy programowania w C++
ze szczególnym uwzglêdnieniem mo¿liwo ci oferowanych przez kompilator Borland
C++Builder. Poznasz wiêc nie tylko sam jêzyk, ale nauczysz siê pisaæ w nim wydajne
i przeno ne aplikacje, dzia³aj¹ce zarówno w rodowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmuj¹:
• Opis zintegrowanego rodowiska programisty C++Buildera
• Podstawy jêzyka C++
• Wczesne oraz pó ne wi¹zanie — wstêp do programowania zorientowanego
obiektowo
• Mo¿liwo ci C++Buildera w zakresie pos³ugiwania siê tablicami ró¿nego typu
• Zaawansowane operatory rzutowania typów
• Informacje czasu wykonania
• Obs³ugê wyj¹tków
• Obs³ugê plików
• £añcuchy ANSI
• Zmienne o typie modyfikowalnym w czasie wykonywania programu
• Funkcje FPU i systemowe
• Elementy wielow¹tkowo ci — wykorzystanie C++ oraz C++Buildera
w nowoczesnych, wielow¹tkowych systemach operacyjnych
• Liczby pseudolosowe i konwersje wielko ci liczbowych
• Wprowadzenie do grafiki
• Komponentowy model C++Buildera i biblioteki DLL
• Biblioteka CLX -- projektowanie aplikacji przeno nych pomiêdzy systemami
operacyjnymi Windows i Linux
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Wstęp...................................................................................................................................................................9
O Autorze ........................................................................................................................................................12
Rozdział 1.
Środowisko programisty IDE Borland C++Builder ...................................................................... 13
Struktura głównego menu .................................................................................................15
Menu File ....................................................................................................................16
Menu Edit....................................................................................................................18
Menu Search ...............................................................................................................21
Pasek narzędzi — Speed Bar ............................................................................................34
Inspektor obiektów — Object Inspector .....................................................................35
Widok drzewa obiektów — Object Tree View...........................................................36
Ogólna postać programu pisanego w C++ ........................................................................37
Funkcja main() ............................................................................................................38
Dyrektywa #include i prekompilacja ..........................................................................39
Konsolidacja ...............................................................................................................40
Konfiguracja opcji projektu ........................................................................................40
Uruchamiamy program ...............................................................................................42
Ogólna postać programu pisanego w C++Builderze ........................................................43
Formularz....................................................................................................................44
Zdarzenia.....................................................................................................................46
Konsola czy formularz? ....................................................................................................48
Podsumowanie ..................................................................................................................49
Rozdział 2.
Podstawy języka C++................................................................................................................................. 51
Dyrektywy preprocesora ...................................................................................................51
Dyrektywa #include ....................................................................................................51
Dyrektywa #define......................................................................................................52
Dyrektywa #undef.......................................................................................................52
Dyrektywa #pragma hdrstop.......................................................................................52
Dyrektywa #pragma argsused.....................................................................................52
Dyrektywa #pragma inline..........................................................................................52
Dyrektywa #pragma option.........................................................................................53
4
C++Builder. Kompendium programisty
Dyrektywa #pragma message .....................................................................................53
Dyrektywa #pragma package(smart_init)...................................................................53
Dyrektywa #pragma resource „nazwa_pliku” ............................................................53
Dyrektywa #error ........................................................................................................54
Dyrektywy kompilacji warunkowej............................................................................54
Kategorie typów danych....................................................................................................56
Podstawowe proste typy całkowite i rzeczywiste .............................................................56
Typ int.........................................................................................................................56
Typ double ..................................................................................................................57
Modyfikatory typów..........................................................................................................58
Typy danych Windows......................................................................................................59
Typ Currency.....................................................................................................................60
Typ void ............................................................................................................................61
Typy logiczne....................................................................................................................61
Typy znakowe ...................................................................................................................61
Typy łańcuchowe ..............................................................................................................62
Modyfikatory dostępu const i volatile...............................................................................63
Specyfikatory klas pamięci ...............................................................................................63
Specyfikator extern .....................................................................................................64
Specyfikator static.......................................................................................................64
Specyfikator register ...................................................................................................64
Operatory...........................................................................................................................65
Typ wyliczeniowy .............................................................................................................68
Słowo kluczowe typedef ...................................................................................................68
Typ zbiorowy ....................................................................................................................69
Deklarowanie tablic...........................................................................................................70
Instrukcje sterujące przebiegiem programu ......................................................................71
Instrukcja warunkowa if…else ...................................................................................72
Instrukcja wyboru switch…case…break ....................................................................73
Instrukcja for...............................................................................................................74
Nieskończona pętla for ...............................................................................................75
Instrukcja iteracyjna do…while..................................................................................76
Instrukcja iteracyjna while..........................................................................................77
Instrukcja przerwania wykonywania pętli break ........................................................78
Funkcja przerwania programu exit()...........................................................................78
Funkcja przerwania programu abort() ........................................................................79
Instrukcja kontynuacji programu continue .................................................................79
Funkcje w C++..................................................................................................................80
Rekurencja ..................................................................................................................81
Funkcje przeładowywane............................................................................................83
Niejednoznaczność .....................................................................................................85
Konwencje wywoływania funkcji...............................................................................86
Specyfikatory konsolidacji funkcji .............................................................................87
Wskazania i adresy............................................................................................................88
Operatory wskaźnikowe..............................................................................................90
Wskaźniki i tablice......................................................................................................90
Wielokrotne operacje pośrednie .................................................................................92
Operatory new i delete ................................................................................................94
Dereferencja wskaźnika ..............................................................................................95
Wskaźniki ze słowem kluczowym const ....................................................................96
Wskaźniki do funkcji ..................................................................................................97
Odwołania .......................................................................................................................101
Parametry odwołaniowe............................................................................................104
Zwracanie odwołań przez funkcje ............................................................................105
Spis treści
5
Struktury..........................................................................................................................106
Przekazywanie struktur funkcjom.............................................................................108
Struktury zagnie d one.............................................................................................109
Wskaźniki do struktur ...............................................................................................111
Samodzielne tworzenie plików nagłówkowych........................................................112
Unie .................................................................................................................................114
Klasy w C++ ...................................................................................................................115
Konstruktor i destruktor............................................................................................119
Inne spojrzenie na klasy. Własności .........................................................................121
Funkcje ogólne..........................................................................................................124
Przeładowywanie funkcji ogólnych..........................................................................125
Dziedziczenie............................................................................................................127
Funkcje składowe klas ze specyfikatorami const i volatile.............................................131
Funkcje wewnętrzne .................................................................................................133
Realizacja przekazywania egzemplarzy klas funkcjom............................................135
Wskaźniki do egzemplarzy klas................................................................................136
Operatory .* oraz ->*................................................................................................138
Wskaźnik this............................................................................................................139
Przeładowywanie operatorów .........................................................................................140
Przeładowywanie jednoargumentowych operatorów ++ oraz – –............................141
Przeładowywanie operatorów ! oraz != ....................................................................144
Przeładowywanie dwuargumentowego operatora arytmetycznego +.......................147
Przeładowywanie operatora &..................................................................................149
Przeładowywanie operatora indeksowania tablic [ ] ................................................150
Klasy wejścia-wyjścia języka C++ .................................................................................153
Obsługa plików z wykorzystaniem klasy ios............................................................155
Tablicowe operacje wejścia-wyjścia.........................................................................157
Podsumowanie ................................................................................................................160
Rozdział 3.
Wczesne oraz późne wiązanie................................................................................................................161
Odwołania i wskaźniki do klas pochodnych ...................................................................161
Funkcje wirtualne w C++................................................................................................163
Wirtualne klasy bazowe ..................................................................................................167
Funkcje wirtualne w C++Builderze ................................................................................170
Klasy abstrakcyjne w stylu biblioteki VCL ....................................................................173
Specyfikator __closure....................................................................................................175
Obszary nazw ..................................................................................................................178
Operator __classid...........................................................................................................179
Funkcja Register() ...........................................................................................................179
Podsumowanie ................................................................................................................179
Rozdział 4.
Tablice.............................................................................................................................................................181
Tablice dynamicznie alokowane w pamięci....................................................................181
Tablice dynamiczne.........................................................................................................184
Tablice otwarte................................................................................................................187
Tablice struktur ...............................................................................................................189
Tablice wskaźników do struktur ...............................................................................191
Odwołania do elementów tablicy wskaźników do struktur ......................................194
Podsumowanie ................................................................................................................197
6
Rozdział 5.
C++Builder. Kompendium programisty
Zaawansowane operatory rzutowania typów................................................................................199
Operator static_cast .........................................................................................................199
Operator dynamic_cast....................................................................................................200
Operator const_cast .........................................................................................................203
Operator reinterpret_cast.................................................................................................205
Podsumowanie ................................................................................................................207
Rozdział 6.
Informacja czasu wykonania................................................................................................................. 209
Klasa TObject..................................................................................................................210
Hierarchia własności komponentów VCL ......................................................................213
Czas ycia komponentów................................................................................................214
Moduł typeinfo.h.............................................................................................................215
Identyfikacja typów czasu wykonywania w oparciu o IDE............................................217
Tablica metod wirtualnych..............................................................................................218
Klasa TControl ................................................................................................................219
Modyfikator __rtti ...........................................................................................................221
Podsumowanie ................................................................................................................223
Rozdział 7.
Obsługa wyjątków.................................................................................................................................... 225
Standardowa obsługa wyjątków......................................................................................225
Strukturalna obsługa wyjątków.......................................................................................228
Klasy wyjątków...............................................................................................................230
Zmienne globalne __throwExceptionName, __throwFileName i __throwLineNumber ...234
Zapisywanie nieobsłu onych wyjątków..........................................................................236
Transformowanie wyjątków Windows ...........................................................................238
Podsumowanie ................................................................................................................240
Rozdział 8.
Obsługa plików .......................................................................................................................................... 241
Klasy TDirectoryListBox, TFileListBox i TDriveComboBox .......................................241
Klasy TActionList, TOpenDialog i TSaveDialog...........................................................243
Własność Options klas TOpenDialog i TSaveDialog .....................................................249
Klasy TOpenPictureDialog i TSavePictureDialog..........................................................250
Klasy TActionManager i TActionMainMenuBar ...........................................................253
Moduł sysutils .................................................................................................................257
Operacje na plikach...................................................................................................258
Atrybuty pliku...........................................................................................................268
Operacje na dyskach .................................................................................................272
Operacje na nazwach plików ....................................................................................273
Windows API ..................................................................................................................274
Klasa TMemoryStream ...................................................................................................280
Klasa TFileStream...........................................................................................................282
Przesyłanie plików przez sieć .........................................................................................285
Drukowanie .....................................................................................................................289
Podsumowanie ................................................................................................................291
Rozdział 9.
Rozdział 10.
Łańcuchy ANSI......................................................................................................................................... 293
Podsumowanie ................................................................................................................301
Zmienne o typie modyfikowalnym w czasie wykonywania programu .............................303
Struktura TVarData .........................................................................................................303
Klasa TCustomVariantType............................................................................................307
Moduł variants.................................................................................................................309
Zgłoś jeśli naruszono regulamin