Úvod 11 // I. DÍL // Objektové programování 15 // 1. Třídy jazyka C++ a jeho uzavřenost 19 // 1.1 Členy třídy 21 // 1.2 Členské funkce 21 // 1.3 Vnitřní a vnější funkce 24 // 1.4 Přístup ke členům třídy 25 // 1.5 Řízení přístupu ke členům 26 // 2. Předávání argumentů, překrývání funkcí a funkce s implicitními // argumenty 33 // 2.1 Předávání argumentů v C++ a reference 33 // 2.2 Překrývání funkcí 34 // 2.3 Funkce s implicitními argumenty 36 // 3. Konstruktory a destruktory tříd 39 // 3.1 Dynamická alokace paměti 42 // 4. Spřátelené funkce 47 // 5. Překrývání operátorů 49 // 6. Hierarchizace tříd 53 // 7. Modelování reálného světa s využitím tříd 55 // 8. Dědění 57 // 8.1 Mnohonásobné dědění 60 // 8.2 Rozlišení rozsahu platnosti ...61 // 8.3 Dědění konstruktorů a ... jejích efekt 63 9. Virtuální funkce // 67 // 9.1 Statické spojení 67 // 9.2 Dynamické spojení a virtuální funkce 67 // 9.3 Definice virtuálních funkcí 73 // 10. Implementace překladače Borland C++ 77 // 11. Knihovny Borland C++ 79 // 11.1 Knihovna datových toků jazyka C++ 79 // 11.1.1 Formátování výstupu 81 // 11.1.2 Manipulátory 82 // 11.2 Disk I/O 83 // 11.3 I/O pro uživatelem definované datové typy 83 // 12. Hlavní odlišnosti jazyků CaC++ 85 // II. DÍL // // Jazyk C++ 89 // 1. Program v jazyce C++ 91 // 1.1 Komentáře 92 // 1.2 Identifikátory 94 // 1.3 Rezervovaná slova 95 // 2. Konstanty 97 // 2.1 Celá čísla 97 // 2.2 Čísla s pohyblivou řádovou čárkou 100 // 2.3 Znaková konstanta 101 // 2.4 Řetězcové konstanty 102 // 3. Objekty a deklarace 105 // 3.1 Objekty a identifikátory 105 // 3.1.1 Datový typ a ukládací třída 105 // 3.1.2 Rozsah platnosti 106 // 3.1.3 Obor jména 108 // 3.1.4 Viditelnost 108 // 3.1.5 Doba trvání 111 // 3.1.6 Spojování 112 //
3.2 Deklarace 113 // 3.2.1 Externí deklarace a definice 114 // 3.2.2 Nekompletní deklarace 115 // 3.3 Datové typy 115 // 3.3.1 Prázdný datový typ 116 // 3.3.2 Základní typy 117 // 3.3.3 Odvozené datové typy 119 // 3.3.3.1 Deklarace 119 // 3.3.3.2 Pointer 122 // 3.3.3.3 Lvalue 125 // 3.3.3.4 Datový typ reference 125 // 3.3.3.5 Pole 126 // 3.3.3.6 Struktury, uniony a třídy 127 // 3.3.4 Vyčíslení a vyčíslovače 127 // 3.3.5 Deklarace typedef 128 // 3.4 Inicializace 128 // 3.5 Specifikace ukládací třídy 130 3.5.1 Modifikátory specifikace ukládací třídy 131 // 3.5.1.1 Modifikátor const 133 // 3.5.1.2 Modifikátor interrupt 135 // 3.5.1.3 Modifikátor volatile 135 // 3.5.1.4 Modifikátory cdecl a pascal 135 // 3.5.1.5 Modifikátory near, far, huge, _cs, _ds, _es, _seg a _ss 136 // 3.5.1.6 Modifikátor _loadds 137 // 3.5.1.7 Modifikátor saveregs 137 // 3.5.1.8 Modifikátor _export 137 // 4. Výrazy, operace a operátory 139 // 4.1 Operátor rozlišení rozsahu platnosti 144 // 4.2 Operátory new a delete 144 // 4.3 Dereference 146 // 5. Příkazy 149 // 5.1 Výrazový příkaz 149 // 5.2 Složený příkaz 149 // 5.3 Podmínkový příkaz 150 // 5.4 Příkaz cyklu while 150 // 5.5 Příkaz cyklu do 150 // 5.6 Příkaz cyklu for 151 // 5.7 Příkazy switch, case a default 151 // 5.8 Příkaz break 152 // 5.9 Příkaz continue 152 // 5.10 Příkaz return 153 // 5.11 Příkaz goto 153 // 5.12 Příkaz návěští 153 // 5.13 Prázdný příkaz 154 // 5.14 Příkaz asm 154 // 6. Funkce 155 // 6.1 Definice funkce 156 // 6.2 Deklarace formálních parametrů, implicitní hodnoty 157 // 6.3 Předávání parametrů funkcím 158 // 6.4 Členské funkce 159 // 6.5 Vnitřní funkce 159 // 6.6 Překrývání funkcí 160 7. Třídy 161 // 7.1 Deklarace tříd 161 // 7.1.1 Seznam členů třídy 163 // 7.1.2 Beztypová třída 164 //
7.1.3 Prostor pro jména tříd 165 // 7.1.4 Objekty typu třída 166 // 7.2 Přístup ke členům třídy 166 // 7.3 Vnitřní funkce 167 // 7.4 Statické členy 168 // 7.5 Klíčové slovo this 169 // 7.6 Rozlišení rozsahu platnosti členů 170 // 7.7 Řízení přístupu ke členům 171 // 7.7.1 Přístup ke členům odvozených tříd 173 // 7.8 Virtuální základní třídy 176 // 7.9 Spřátelené funkce a třídy 177 // 7.10 Konstruktory a destruktory 180 // 7.10.1 Konstruktory 181 // 7.10.2 Inicializace tříd 185 // 7.10.2.1 Inicializace tříd konstruktorem 185 // 7.10.2.2 Inicializace tříd seznamem inicializátorů 189 // 7.10.3 Destruktory 190 // 7.11 Překrývání operátorů 193 // 7.12 Virtuální funkce 200 // 8. Direktivy jazyka C++ 205 // 8.1 Makroinstrukce (makra) 205 // 8.2 Vložení souboru 211 // 8.3 Podmíněná kompilace 212 // 8.4 Instrukce pro nastavení čísla řádku 214 // 8.5 Instrukce pro generování chybového hlášení 215 // 8.6 Direktiva #pragma 215 // 8.6.1 Direktiva #pragma argsused 215 // 8.6.2 Direktiva #pragma startup 216 // 8.6.3 Direktiva #pragma exit 216 // 8.6.4 Direktiva #pragma inline 217 // 8.6.5 Direktiva #pragma warn 217 // 8.6.6 Direktiva #pragma saveregs 218 // 8.6.7 Direktiva #pragma option 218 // 8.7 #pragma hdrfile a #pragma hdrstop 219 // 8.8 Prázdná direktiva 219 III. DÍL // Knihovny Borland C++ 221 // 1. Header soubory a knihovny Borland C++ 221 // 2. Matematické funkce a náhodná čísla 225 // 2.1 Dělení čísel, zbytek a operace modulo 225 // 2.2 Určení maxima a minima 225 // 2.3 Absolutní hodnota 226 // 2.4 Zaokrouhlování čísel 227 // 2.5 Komplexní čísla 228 // 2.6 Goniometrické funkce 231 // 2.7 Hyperbolické funkce 232 // 2.8 Cyklometrické funkce 233 // 2.9 Exponenciální funkce, mocnina, odmocnina 235 // 2.10 Logaritmické funkce 236 // 2.11 Speciální funkce 237 //
2.12 Funkce pro rotaci bitů 238 // 2.13 Funkce pro ošetření matematických chyb 238 // 2.14 Generování náhodných čísel 239 // 3. Práce s pamětí 241 // 3.1 Hlavní paměť 241 // 3.2 Paměť ze vzdálené haldy 247 // 3.3 Paměť DOSu 251 // 3.4 Paměť BIOSu 252 // 3.5 Manipulace s hodnotami v paměti 253 // 4. Práce s řetězci 257 // 4.1 Délka řetězce 257 // 4.2 Reverze řetězce 257 // 4.3 Porovnání řetězců 257 // 4.4 Spojování řetězců 259 // 4.5 Kopírování řetězců 260 // 4.6 Nastavení hodnot řetězců 261 // 4.7 Konverze velkých a malých písmen v řetězci 262 // 4.8 Záměna bytů 262 // 4.9 Vyhledávání jednotlivých znaků a skupiny znaků v řetězci . 262 // 4.10 Klasifikace a konverze znaků 263 4.11 Konverze čísel a řetězců 265 // 4.12 Zápis do řetězce a čtení z řetězce 267 // 4.13 Manažer překrývání 268 // 5. Vstupní a výstupní operace 271 // 5.1 Funkce pro vstup a výstup knihoven klasického С 271 // 5.1.1 Vstup ze standardního vstupního zařízení 271 // 5.1.2 Výstup na standardní výstupní zařízení 272 // 5.1.3 Datové toky 273 // 5.1.4 Diskové soubory 281 // 5.1.5 Funkce pro ovládání klávesnice a obrazovky 286 // 5.1.5.1 Vstup z klávesnice 287 // 5.1.5.2 Výstup na obrazovku 288 // 5.1.5.3 Ovládání obrazovky 288 // 5.1.5.4 Operace na hardwarovém portu 293 // 5.2 Třídy pro vstupní a výstupní operace 294 // 5.2.1 Standardní datové toky 300 // 5.2.2 Vstup z datového toku 301 // 5.2.3 Výstup z datového toku 304 // 5.2.4 Uživatelem definované překrytí operátorů < < a > > . 308 // 5.2.5 Příklady práce se souborem s využitím tříd 309 // 5.2.6 Chybové stavy datových toků 312 // 5.3 Diskové a adresářové funkce 314 // 5.3.1 Aktivní disk 314 // 5.3.2 Adresářové funkce 315 // 5.3.3 Volný prostor disku 316 // 5.3.4 Přejmenování souboru 316 //
5.3.5 Zrušení souboru 316 // 5.3.6 Atributy souboru 317 // 5.3.7 Verifikace zápisu 318 // 5.3.8 Přímé čtení a zápis sektoru disku 318 // 5.3.9 Funkce pro FAT 319 // 5.3.11 Prohledávání adresářů 320 // 5.3.12 Dočasné pracovní soubory 320 // 5.3.13 Další funkce 321 // 6. Funkce pro řízení chodu programu 323 // 6.1 Ukončení chodu programu 323 // 6.2 Pozastavení chodu programu 324 // 6.3 Volání jiného programu nebo provedení příkazu DOSu . . . 324 // 6.4 Řízení statusu koprocesoru 326 6.5 Zvuk 327 // 6.6 Řízení statusu etri+break 327 // 6.7 Prostředí DOSu 328 // 6.8 Země DOSu 328 // 6.9 Zjištění PSP 329 // 6.10 Signál prováděnému programu 330 // 6.11 Nelokální skok 330 // 6.12 Konstrukce adresy typu far 331 // 6.13 Ošetření chyb 332 // 6.14 Čas a datum 334 // 6.14.1 Výstup data a času 335 // 6.14.2 Konverze formátů a časová diference 336 // 6.14.3 Zjištění systémového času a data 339 // 6.14.4 Nastavení systémového času a data 339 // 6.14.5 Lokální čas 340 // 6.14.6 Čas procesoru 341 // 6.15 Systémová volání a přerušení 342 // 6.16 Prostředky pro proměnný počet argumentů 345 // 6.17 Další funkce 347 // 7. Globální proměnné 349 // Rejstřík 353