Předmluva i // Poděkování ii // Předmluva k prvnímu vydání iii // Poděkování iv // Obsah v // Poznámky pro čtenáře 1 // Uspořádání knihy 1 // Poznámky k implementaci 2 // Cvičení 3 // Poznámky k návrhu 3 // Historická poznámka 4 // C a C++ 6 // Efektivita a struktura 7 // Filosofická poznámka 8 // Úvaha o programování v C++ 9 // Základní pravidla 10 // Poznámka pro programátory vC 11 // Literatura 12 // 1 Prohlídka C++ 15 // 1.1 Úvod 15 // 1.2 Programovací schémata 16 // 1.3 "Zlepšené C" 25 // 1.4 Podpora datové abstrakce 32 // 1.5 Podpora pro objektově orientované programování 38 // 1.6 Meze zdokonalování 44 // 2 Deklarace a konstanty 47 // 2.1 Deklarace 47 // 2.2 Jména 52 // 2.3 Typy 52 // 2.4 Literály 67 // 2.5 Pojmenované konstanty 71 // 2.6 Úspora místa 74 // 2.7 Cvičení 77 // 3 Výrazy a příkazy 79 // 3.1 Stolní kalkulátor 79 // 3.2 Přehled operátorů 92 // 3.3 Přehled příkazů 104 // 3.4 Komentáře a odsazování zdrojového textu programu 109 // 3.5 Cvičení 111 // 4 Funkce a soubory 115 // 4.1 Úvod 115 // 4.2 Sestavování 116 // 4.3 Hlavičkové soubory 118 // 4.4 Spojování s kódem, který není v C++ 126 // 4.5 Jak vytvořit knihovnu 128 // 4.6 Funkce 129 // 4.7 Makra 144 // 4.8 Cvičení 146 // 5 Třídy 149 // 5.1 Úvod a přehled 149 // 5.2 Třídy a členy 150 // 5.3 Rozhraní a implementace 159
// 5.4 Vedlejší vlastnosti tříd 167 // 5.5 Konstrukce a destrukce 176 // 5.6 Cvičení 183 // 6 Odvozené třídy 187 // 6.1 Úvod a přehled 187 // 6.2 Odvozené třídy 188 // 6.3 Abstraktní třídy 197 // 6.4 Úplný program 199 // 6.5 Vícenásobná dědičnost 207 // 6.6 Řízení přístupu 216 // 6.7 Volná paměť 220 // 6.8 Cvičení 227 // 7 Přetížení operátoru 229 // 7.1 Úvod 229 // 7.2 Operátorové funkce 230 // 7.3 Uživatelsky definovaná konverze typu 233 // 7.4 Literály 240 // 7.5 Velké obj ekty 240 // 7.6 Přiřazování a inicializace 242 // 7.7 Indexování 245 // 7.8 Volání funkce 247 // 7.9 Nepřímé adresování 248 // 7.10 Inkrement a dekrement 250 // 7.11 Řetězcová třída 252 // 7.12 Spřátelené (friends) a členské funkce 255 // 7.13 Upozornění 256 // 7.14 Cvičení 257 // 8 Šablony 261 // 8.1 Úvod 261 // 8.2 Jednoduchá šablona 262 // 8.3 Seznamové šablony 265 // 8.4 Šablony funkcí 276 // 8.5 Řešení přetěžování funkce šablony 283 // 8.6 Argumenty šablony 285 // 8.7 Odvození a šablony 287 // 8.8 Asociativní pole 289 // 8.9 Cvičení 296 // 9 Ošetření výjimečných stavů 299 // 9.1 Ošetření chyb 299 // 9.2 Rozlišování výjimečných stavů 304 // 9.3 Pojmenování výjimečných stavů 306 // 9.4 Získávání zdrojů 314 // 9.5 Výjimečné stavy, které nejsou chybami 321 // 9.6 Specifikace rozhraní 324
// 9.7 Nezachycené výjimečné stavy 327 // 9.8 Alternativy ošetřování chyb 328 // 9.9 Cvičení 330 // 10 Datové proudy 333 // 10.1 Úvod 333 // 10.2 Výstup 335 // 10.3 Vstup 338 // 10.4 Formátování 345 // 10.5 Soubory a datové proudy 358 // 10.6 Vstupy a výstupy v C 364 // 10.7 Cvičení 367 // 11 Návrh a vývoj 369 // 11.1 Úvod 369 // 11.2 Cíle a prostředky 373 // 11.3 Proces vývoje 375 // 11.4 Řízení práce 391 // 11.5 Základní pravidla 397 // 11.6 Literatura s anotacemi 398 // 12 Návrh a C++ 401 // 12.1 Návrh a programovací jazyk 401 // 12.2 Třídy 412 // 12.3 Komponenty 433 // 12.4 Rozhraní a implementace 436 // 12.5 Základní pravidla 439 // 13 Návrh knihoven 441 // 13.1 Úvod 441 // 13.2 Konkrétni typy 443 // 13.3 Abstraktní typy 446 // 13.4 Uzlové třídy 452 // 13.5 Informace o typu při běhu programu 454 // 13.6 Tlusté rozhraní (rozhraní typu "fat") 464 // 13.7 Rámce pro aplikaci 467 // 13.8 Třídy rozhraní 469 // 13.9 Třídy ovladačů 472 // 13. lOSpráva paměti 477 // 13.11 Cvičení 486 // Referenční manuál 489 // r.l Úvod 489 // r.2 Lexikální konvence 490 // r.3 Základní pojmy 494 // r.4 Standardní konverze 501 // r.5 Výrazy 504 // r.6 Příkazy 522 // r.7 Deklarace 530 // r.8 Deklarátory 540 // r.9 Třídy 556 // r. 10 Odvozené třídy 570 // r. 11 Řízení přístupu ke členům 578 // r.12 Zvláštní členské funkce 585 // r.13 Přetěžování 600 // r.14 Šablony 610 // r.15 Ošetřování výjimečných stavů 617 // r. 16 Předzpracování 622 // r. 17 Dodatek A: Přehled gramatiky 631 // r.l 8 Dodatek В : Kompatibilita 645 // Rozhodnutí (usnesení) ANSI/ISO 653 // 14 Index 66?