|
.
|
|
0 (hodnocen0 x )
|
|
(2) Půjčeno:4x
|
|
BK
|
|
|
|
|
|
1. vyd.
|
|
Praha : Grada, 2006
|
|
608 s.
|
|
|
|
|
|
ISBN 80-247-1015-3 (brož.)
|
|
Knihovna zkušeného programátora
|
|
Myslíme v-
|
|
|
|
|
|
angličtina
|
|
Přeloženo z angličtiny
|
|
Obsahuje bibliografické odkazy, rejstřík
|
|
|
|
|
|
|
|
C++ (jazyk) - příručky
|
|
|
|
|
|
000065247
|
|
Obsah // Úvod...17 // Cíle...17 // Kapitoly...18 // Cvičení...20 // Řešení úkolů...20 // Zdrojový kód...20 // Standardy jazyka...20 // Podpora jazyka...21 // Semináře, CD-ROMy a konzultace...21 // Chyby...21 // Poděkování...21 // Část i...25 // Tvorba stabilních systémů // 1. Obsluha výjimek // 1.1 Tradiční obsluha výjimek... // 1.2 Vyvolání výjimky... // 1.3 Zachycení výjimky... // Blok try... // Handlery výjimek... // Přerušení a obnovení... // 1.4 Přiřazování odpovídajících výjimek // Zachycení libovolné výjimky... // Opětovné vyvolání výjimky... // Nezachycené výjimky... // 1.5 Úklid... // Správa zdrojů... // Ze všeho udělat objekt... // auto ptr... // Bloky try na úrovni funkce // Standardní výjimky... // 26 // 27 // 28 // 30 // 31 31 31 33 33 35 // 35 // 36 // 37 // 38 .40 .42 // 43 // 44 // 8 // Obsah // Specifikace výjimek // Lepší spec i li ??? výjimek? // Specifikace výjimek a dědičnost // Kdy nepoužívat specifikace výjimek // 1.8 Bezpečnost při výjimkách . // 1.9 Programování s výjimkami // Kdy se výjimkám vyhnout.. // Typické použití výjimek.. // 1.10 Zatížení ... // 1.11 Shrnutí ... // 1.12 Cvičení ... // 2. Defenzivní programování... // 2.1 Aserce... // 2.2 Jednoduchý rámec pro testování jednotek // Automatizované testování... // Rámec TestSuite... // Sady testů... // Kód testovacího rámce... // 2.3 Ladicí techniky... // Makra Trace... // Žurnál... // Nalezení
|
|
úniků paměti... // 2.4 Shrnutí... // 2.5 Cvičení... // 46 // 49 // 50 // 51 // 51 // 54 // 54 // 56 // 58 // 60 // 60 // 63 // 66 // 69 // 70 73 75 77 81 81 82 83 88 88 // Část 2...91 // Standardní knihovna C++ 3. Řetězce podrobně... // 3.1 // 3.2 // 3.3 // Co je součástí řetězce?... // Tvorba a inicializace řetězců v C++ // Operace s řetězci... // Připojování, vkládání a spojování řetězců Náhrada znaků v řetězci... // Spojování pomocí nečlenských přetížených operátorů // .92 // .95 // .96 // .98 // 100 // 100 // 102 // 105 // Obsah // 9 // 3.4 Vyhledávání v řetězcích... 106 // Hledání od konce...109 // Hledání prvního nebo posledního ze sady znaků...111 // Odstranění znaků z řetězce...112 // Porovnávání řetězců...114 // Řetězce a třídy charakteristik znaků...117 // 3.5 Aplikace s řetězci... 122 // 3.6 Shrnutí... 126 // 3.7 Cvičení...126 // 4. Vstupně-výstupní proudy...129 // 4.1 Proč vstupně-výstupní proudy?... 130 // 4.2 Vv-proudy zachraňují situaci... 133 // Vstupní a výstupní operátory...134 // Běžné užití...137 // Řádkově orientovaný vstup...139 // 4.3 Obsluha chyb proudu... 140 // 4.4 Souborové proudy... 142 // Příklad zpracování souboru...142 // Režimy otevření...144 // 4.5 Bufferování vv-proudů...145 // 4.6 Hledání v proudech... 147 // 4.7 Řetězcové proudy... 149 // Vstupní řetězcové proudy...150 // Výstupní řetězcové proudy...151 // 4.8 Formátování
|
|
výstupního proudu... 154 // Formátovací příznaky...154 // Formátovací pole...155 // Funkce width, fill a precision...157 // Celkový příklad...157 // 4.9 Manipulátory... 160 // Manipulátory s parametry...161 // Vytváření manipulátorů...163 // Efektory...164 // 10 // Ohs ah // 4.10 Příklady na vstupně-výstupní proudy. Udržování zdrojového kódu knihovny tříd // Zjištění chyb překladu... // Jednoduchý záznamník dat... // 4.11 Internacionalizace... // Široké proudy... // Lokace... // 4.12 Shrnutí ... // 4.13 Cvičení ... // W // 5. Šablony podrobně // 5.1 Parametry šablon... // Netypové parametry šablon... // Implicitní parametry šablon... // Šablona jako parametr šablony... // Klíčové slovo typename... // Použití klíčového slova template jako vodítka Členské šablony... // 5.2 Problematika šablon funkcí... // Odvození parametrů šablony funkce... // Přetěžování šablon funkcí... // Zjištění adresy funkce vygenerované podle šablony Použití funkce na STL sekvenci... // Částečné uspořádání šablon funkcí // Specializace šablon // Explicitní specializace... // Částečná specializace... // Praktický příklad... // Jak zabránit narůstání kódu šablon // 5.4 Problematika hledání jmen... // Jména v šablonách... // Šablony a přátelé... // 5.5 Šablonové programovací idiomy... // Charakteristiky (Traits)... // Zásady... // Překvapivá rekurze šablonového vzoru // 166 // 166 // 169
|
|
// 171 // 175 // 175 // 177 // 179 // 179 // 183 // 184 184 186 187 192 // 194 // 195 197 197 200 201 204 206 // 207 // 208 209 211 213 217 217 220 225 225 230 232 // Obsah // 11 // 5.6 Šablonové metaprogramování...234 // Programování v době překladu...234 // Šablony výrazů...241 // 5.7 Modely překladu šablon...246 // Zahrnující model...247 // Explicitní instance...247 // Oddělující model...249 // 5.8 Shrnutí...250 // 5.9 Cvičení...251 // 6. Šablony podrobně...253 // 6.1 První pohled...254 // Predikáty...256 // Iterátory na proudech...258 // Složitost algoritmů...260 // 6.2 Funktory...261 // Klasifikace funktorů...262 // Automatické vytváření funktorů...263 // Adaptabilní funktory...265 // Další příklady na funktory...267 // Adaptéry ukazatelů na funkce...272 // Psaní vlastních adaptérů funktorů...277 // 6.3 Katalog algoritmů ze STL...280 // Podpůrné nástroje pro tvorbu příkladů...282 // Vyplňování a generování...285 // Počítání...286 // Manipulace se sekvencemi...287 // Vyhledávání a nahrazování...291 // Porovnávání rozsahů...296 // Odstraňování prvků...299 // Třídění a operace na setříděném rozsahu...302 // Operace s hromadou...309 // Použití operace pro každý prvek v daném rozsahu...310 // Numerické algoritmy...317 // Obecné utility...319 // 12 // Obsah // 6.4 Tvorba nových algoritmů ve stylu STL...321 // 6.5 Shrnutí...322 // 6.6 Cvičení...322 // 7. Generické kontejnery...327
|
|
7.1 Kontejnery a iterátory...328 // Referenční dokumentace STL...329 // 7.2 První pohled...329 // Kontejnery řetězců...334 // Dědění od STL kontejnerů...335 // 7.3 Nadbytek iterátorů...337 // Iterátory v reverzibilních kontejnerech...338 // Kategorie iterátorů...339 // Předdefinované iterátory...341 // 7.4 Základní sekvence: vector, list, deque...345 // Základní sekvenční operace...345 // Kontejner vector...347 // Kontejner deque...353 // Převod mezi sekvencemi...355 // Kontrolovaný náhodný přístup...350 // Kontejner list...357 // Prohození sekvencí...362 // 7.5 Množina (set)...362 // Opětovně použitelný lexikální analyzátor...365 // 7.6 Zásobník (stack)...369 // 7.7 Fronta (queue)...371 // 7.8 Prioritní fronty...375 // 7.9 Uchovávání bitů...382 // bitset<n>...383 // vector<bool>...386 // 7.10 Asociativní kontejnery...387 // Generátory a plničky associativních kontejnerů...391 // Kouzlo map...393 // Vícenásobné mapy a duplicitní klíče...394 // Vícenásobné množiny...397 // Obsah // 13 // 7.11 Kombinování STL kontejneru...399 // 7.12 Uklízení kontejnerů ukazatelů...402 // 7.13 Vytvoření vlastních kontejnerů...403 // 7.14 Rozšíření STL...405 // 7.15 Kontejnery mimo STL...407 // 7.16 Shrnutí ...411 // 7.17 Cvičení ...411 // Část 3...413 // Zvláštní témata...414 // 8. Identifikace typu za běhu...415 // 8.1 Přetypování za běhu...416 // 8.2 Operátor typeid...420 // Přetypování na mezilehlé
|
|
úrovně...422 // Ukazatele void*...423 // Použití RTTI se šablonami...424 // 8.3 Vícenásobná dědičnost...424 // 8.4 Rozumné využití pro RTTI...425 // Odpadkový koš...426 // 8.5 Mechanizmus RTTI a zátěž...429 // 8.6 Shrnutí...430 // 8.7 Cvičení...430 // 9. Vícenásobná dědičnost...433 // 9.1 Náhled...434 // 9.2 Dědíme rozhraní...435 // 9.3 Dědění implementace...438 // 9.4 Zdvojení podobjektů...442 // 9.5 Virtuální bázové třídy...445 // 9.6 Problematika hledání jmen...452 // 9.7 Kdy se vyhnout vícenásobné dědičnosti...455 // 9.8 Rozšiřování rozhraní...456 // 9.9 Shrnutí...459 // 9.10 Cvičení ...459 // 14 // Obsah // 10. Návrhové vzory // 463 // 10.1 // 10.2 // Model vzoru... // Dejte přednost skládání před dědičností Rozdělení vzorů... // Vlastnosti, idiomy, vzory // 10.3 Zjednodušující idiomy // Přepravka... // Sběrný parametr... // 10.4 Jedináěek... // Variace na jedináěka... // 10.5 Příkaz: výběr operace... // Oddělení zpracování události pomocí Příkazu. // Zmenšení provázanosti objektu... // 10.6 Zástupce: předvoj dalšího objektu... // 10.7 Stav: změna chování objektu... // 10.8 Adaptér... // 10.9 Šablonová metoda... // 10.10 Strategie: výběr algoritmu za běhu... // 10.11 Řetěz zodpovědnosti: zkoušení řady strategií // 10.12 Továrny: zapouzdření vytváření objektů... // Polymorfní továrny... // Abstraktní továrny... // Virtuální konstruktory... // 10.13 Stavitel:
|
|
vytváření složitých objektů... // 10.14 Pozorovatel... // Idiom „vnitřní třída“. // Příklad pozorovatele... // 10.15 Vícenásobné odbavení // Vícenásobné odbavení s návštěvníkem // 10.16 Shrnutí ... // 10.17 Cvičení... // 464 . 465 // 465 .466 // 466 .467 .468 // 469 // 470 473 // ,474 // 477 // 478 // 479 // 480 // 482 // 483 485 487 489 491 493 497 603 // 505 // 508 // 51 1 514 517 517 // 11. Paralelní programování...521 // 11.1 Motivace...522 // 11.2 Paralelní programování v C++...523 // Instalace knihovny ZThread...524 // Obsah // 15 // 11.3 Definování úkolů // 11.4 Použití vláken.. // Vytvoření reagujícího uživatelského rozhraní // Zjednodušení pomocí Exekutorů... // Přenechání... // Uspání... // Priorita... // 11.5 Sdílení omezených zdrojů... // Zajištění existence objektů... // Nesprávný přístup ke zdrojům... // Řízení přístupu... // Zjednodušení kódu pomocí strážců... // Lokální úložiště vlákna... // 11.6 Ukončování úkolů... // Předcházení kolizím vstupního a výstupního proudu // Okrasná zahrada... // Ukončení při zablokování... // Přerušení... // 11.7 Spolupráce mezi vlákny... // Čekání a signály... // Vztah výrobce-spotřebitel... // Řešení problémů s vlákny pomocí front... // Použití funkce broadcast)... // 11.8 Uváznutí (deadlock)... // 11.9 Shrnutí ... // 1 1.10 Cvičení... // 525 // 526 .528 .529 .532 .533 .534 536 ,536 .539 .541 .542
|
|
.545 547 .547 .548 .552 .553 557 .558 561 564 568 573 // 578 // 579 // Dodatek A...583 // A. 1 Obecné C++...583 // A.2 C++ podrobně...585 // A.3 Návrhové vzory...586 // Dodatek ?...587 // Rejstřík // 593
|