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ě

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.

Napsat recenzi

Poznámka: Nepoužívejte HTML tagy!
    Špatný           Dobrý

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