Objektové programování v C++ v příkladech
autor Matoušek David
rozsah / vazba 148 stran A4 / brožovaná V2
vydání 1. české
běžná cena 370,00 Kč
Kniha je určena všem zájemcům o objektové programování v jazyce C++, kteří již mají předchozí znalosti jazyka C. Text je budován tak, aby čtenář mohl postupně vlastními silami pochopit objektové programování v jazyce C++. Výklad je doplněn celkem 39 řešenými příklady.
První kapitola uvádí základní odlišnosti mezi jazyky C a C++ bez ohledu na objektové vlastnosti. Jedná se zejména o přetěžovaní a implicitní parametry funkcí, volání odkazem a použití proudů.
Ve druhé kapitole se seznámíme se základy objektového programování v C++. Budou vysvětleny pojmy: zapouzdření, atribut, metoda, úroveň přístupu, konstruktor a destruktor.
Kapitoly 3 a 4 vysvětlují dědičnost a spojené pojmy jako polymorfismus, virtuální metody, RTTI, abstraktní třídy, čisté virtuální metody.
V páté kapitole se probírají výjimky a jsou doplněny informace o operátorech new a delete.
Kapitoly 6 a 7 probírají přetěžování operátorů. Formou praktických příkladů je ukázáno přetížení operátorů pro práci s komplexními čísly a realizace třídy pro práci s řetězci. Dále jsou vysvětleny související pojmy spřátelených tříd a funkcí, mělká a hluboká kopie.
Osmá kapitola doplňuje informace k proudové knihovně. Je uvedena hierarchie proudů, proudy specializované na práci se soubory a řetězci. Připojena je též ukázka definování uživatelských proudových manipulátorů.
Devátá kapitola probírá konstantní a statické členy, tedy konstantní a statické atributy nebo metody.
Kapitoly 10, 11 a 12 jsou věnovány abstraktním datovým typům (ADT). Nejdříve jsou zopakovány obecné informace o datových typech, dále se probírají pojmy signatura a axiom. Jednotlivé příklady jsou zaměřeny na jednosměrný spojový seznam, polymorfní seznam, zásobník, frontu a obousměrný seznam s ukazovátkem.
Třináctá kapitola probírá šablony a genericitu, hlavním příkladem je šablona zásobníku.
Čtrnáctá kapitola doplňuje zbývající rysy jazyka C++ tedy prostory jmen a ukazatele do tříd.
Patnáctá kapitola je úvodem do standardní knihovny šablon (STL). Probírány jsou zejména šablony vector a map a dále iterátory a algoritmy.
Stručný obsah
Základní odlišnosti mezi jazyky C a C++
Základy OOP v jazyce C++
Dědičnost - základní informace
Dědičnost - doplnění
Výjimky
Přetěžování operátorů – základní informace
Přetěžování operátorů – vylepšení třídy TRetez
Proudová knihovna
Konstantní a statické členy
ADT - abstraktní datové typy
Pokročilejší abstraktní datové typy
ADT seznam s ukazovátkem
Šablony
Zbývající rysy jazyka C++
STL - Standard Template Library
i
Obsah
1 Základní odlišnosti mezi jazyky C a C++
1.1 Deklarace je příkaz............................................................................................1-1
1.2 Funkce...............................................................................................................1-1
1.3 Insertor a extraktor ............................................................................................1-3
1.4 Operátory pro správu dynamické paměti...........................................................1-4
1.5 Zjednodušená definice datových typů ...............................................................1-5
1.6 Datový typ bool..................................................................................................1-5
1.7 Příklad PROG_01-01.........................................................................................1-5
1.8 Příklad PROG_01-02.........................................................................................1-7
1.9 Proudové manipulátory......................................................................................1-8
2 Základy OOP v jazyce C++
2.1 Příklad PROG_02-01 – Definice třídy TRetez ...................................................2-2
2.2 Příklad PROG_02-02 – Třída TRetez s konstruktorem.....................................2-4
2.3 Příklad PROG_02-03 – Bezparametrický konstruktor .......................................2-5
2.4 Příklad PROG_02-04 – Třída TRetez s destruktorem.......................................2-6
2.5 Příklad PROG_02-05 – Kopírovací konstruktor.................................................2-9
2.6 Ukazatel this....................................................................................................2-11
2.7 Dynamická alokace instance třídy ...................................................................2-11
2.8 Diagram třídy...................................................................................................2-11
2.9 Inline zápis ......................................................................................................2-12
2.10 Shrnutí.............................................................................................................2-12
3 Dědičnost – základní informace
3.1 PROG_03-01 – Příklad hierarchie tříd...............................................................3-1
3.2 Podrobnější pohled na dědičnost ......................................................................3-4
3.3 PROG_03-02 – Polymorfní pole........................................................................3-5
3.4 Podrobnější výklad virtuálních metod................................................................3-7
3.5 RTTI – dynamická identifikace typů...................................................................3-8
4 Dědičnost – doplnění
4.1 Operátory pro přetypování.................................................................................4-1
4.2 Abstraktní třída a čisté virtuální metody.............................................................4-1
4.3 PROG_04-01 – Hierarchie tříd s abstraktní bází ...............................................4-2
4.4 Polymorfismus a parametry volané odkazem....................................................4-8
4.5 Vícenásobná dědičnost .....................................................................................4-9
4.6 Shrnutí kapitol 3 a 4 ........................................................................................4-10
5 Výjimky
5.1 PROG_05-01 – ošetření výjimek.......................................................................5-2
5.2 Rozšiřující informace o operátorech new a delete.............................................5-3
6 Přetěžování operátorů – základní informace
6.1 PROG_06-01 – motivační případ ......................................................................6-1
6.2 Pravidla pro přetěžování operátorů ...................................................................6-2
6.3 Unární operátory (operátory s jedním operandem) ...........................................6-3
6.4 Binární operátory (operátory se dvěma operandy) ............................................6-3
6.5 Některé zvláštnosti ............................................................................................6-4
6.6 PROG_06-02 – vylepšení třídy TKomplex.........................................................6-6
7 Přetěžování operátorů – vylepšení třídy TRetez
7.1 Spřátelené třídy a funkce...................................................................................7-1
7.2 PROG_07-01 – řetězcová třída TString.............................................................7-2
7.3 Mělká a hluboká kopie.......................................................................................7-7
7.4 Další možná rozšíření třídy TString ...................................................................7-7
OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH
ii
8 Proudová knihovna
8.1 Hierarchie proudů.............................................................................................. 8-1
8.2 Standardně zavedené proudy ........................................................................... 8-1
8.3 Základní třídy .................................................................................................... 8-1
8.4 Souborové proudy............................................................................................. 8-2
8.5 Řetězcové proudy ............................................................................................. 8-4
8.6 Další metody proudů......................................................................................... 8-5
8.7 PROG_08-05: Definice vlastních proudových manipulátorů ............................. 8-9
9 Konstantní a statické členy
9.1 Konstantní členy................................................................................................ 9-1
9.2 Statické členy.................................................................................................... 9-4
10 ADT – abstraktní datové typy
10.1 Zopakování a doplnění informací o datových typech ...................................... 10-1
10.2 Vložené datové typy........................................................................................ 10-2
10.3 Abstraktní datový typ (ADT) ............................................................................ 10-2
10.4 ADT seznam (PROG_10-01) .......................................................................... 10-2
10.5 ADT polymorfní seznam (PROG_10-02)......................................................... 10-7
10.6 Shrnutí a doplnění informací ......................................................................... 10-10
11 Pokročilejší abstraktní datové typy
11.1 ADT zásobník.................................................................................................. 11-1
11.2 ADT fronta....................................................................................................... 11-7
12 ADT seznam s ukazovátkem
12.1 Základní vlastnosti .......................................................................................... 12-1
12.2 Implementace.................................................................................................. 12-3
12.3 Testovací příklad............................................................................................. 12-8
13 Šablony
13.1 Genericita........................................................................................................ 13-1
13.2 Šablony funkcí................................................................................................. 13-1
13.3 Šablony objektových typů a jejich metod ........................................................ 13-5
14 Zbývající rysy jazyka C++
14.1 Prostory jmen (jmenné prostory) ..................................................................... 14-1
14.2 Ukazatele do tříd („třídní“ ukazatele)............................................................... 14-3
15 STL – Standard Template Library
15.1 Kontejner vector .............................................................................................. 15-1
15.2 Algoritmy ......................................................................................................... 15-8
15.3 Kontejner list ................................................................................................. 15-10
15.4 Kontejner deque............................................................................................ 15-10
15.5 Kontejner stack ............................................................................................. 15-10
15.6 Kontejner queue............................................................................................ 15-11
15.7 Kontejner map............................................................................................... 15-11
OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH
Předmluva
Tato kniha vznikla především pro podporu výuky předmětu Objektové
programování v C++ na oboru Počítačové systémy na Vysoké škole polytechnické
v Jihlavě. Zejména je určena pro studenty kombinované formy studia.
Kniha je určena rovněž všem zájemcům o objektové programování v jazyce C++,
kteří již mají předchozí znalosti jazyka C minimálně v rozsahu daném [1]. Text je
budován tak, aby čtenář mohl postupně vlastními silami pochopit objektové
programování v jazyce C++. Výklad je doplněn celkem 39 řešenými příklady.
První kapitola uvádí základní odlišnosti mezi jazyky C a C++ bez ohledu
na objektové vlastnosti. Jedná se zejména o přetěžovaní a implicitní parametry funkcí,
volání odkazem a použití proudů.
Ve druhé kapitole se seznámíme se základy objektového programování v C++.
Budou vysvětleny pojmy: zapouzdření, atribut, metoda, úroveň přístupu, konstruktor a
destruktor.
Kapitoly 3 a 4 vysvětlují dědičnost a spojené pojmy jako polymorfismus, virtuální
metody, RTTI, abstraktní třídy, čisté virtuální metody.
Objektové programování v C++ v příkladech
- Kód výrobku: Objektové programování v C++ v příkladech
- Dostupnost: 1
-
370CZK
- Cena bez DPH: 370CZK