Содержание
- 2. Zápočet Zdrojové kódy v minimálním rozsahu 1500 řádků, doporučeno 2500 řádků. Nejlépe: Vlastní ucelený příklad, který
- 3. Zkouška Diskuze nad zdrojovými kódy předloženými k získání zápočtu. Zkušební okruhy Reference jako parametr funkce a
- 4. Literatura Miroslav Virius: Programování v C++ Miroslav Virius: Pasti a propasti jazyka C++ Miroslav Virius: Od
- 5. ZS (PJC) LS (OOP) Obsah předmětu C C C++ C++ Paradigmata programování, OOP Objekty, zapouzdření, dědičnost,
- 6. Procedurální programování jakou akci mám provést vstup – výpočet (algoritmus) – výstup black box: procedura /
- 7. Koncepční pohled objekt: entita reagující na vnější podněty třída: množina stejně reagujících entit Technický pohled objekt:
- 8. Třída zvíře v C++ - rozhraní vnitřní stav (privátní) rozhraní (veřejné) metody zvire.h konstruktor (inicializace) inline
- 9. Třída zvíře - implementace zvire.h zvire.cpp Třída metody :: operátor kvalifikace Implementace (tělo) metody Přístup k
- 10. Třída zvíře - použití zvire.h mujprogram.cpp Import rozhraní Automatický konstruktor Instance třídy = objekt zaludek =
- 11. Objekt - instance třídy pytlik: beruska: ? Metoda třídy - ke kterému objektu má přistupovat?
- 12. this pytlik: beruska: this C C++ Každá metoda dostane 'tajný' parametr this – ukazatel na objekt
- 13. Reference x: :px y: :ry x: :a y: :b
- 14. Přetěžování funkcí
- 15. Implicitní parametry
- 16. Konstruktory Konstruktor s parametry Implicitní konstruktor bez parametrů Copy konstruktor X (const X&) vytvoří objekt jako
- 17. Konstruktor s parametry Tímto zakážeme deklarovat objekt bez použití NEimplicitního konstruktoru Nejde, zakázali jsme Využití Předání
- 18. Přetěžování operátorů - deklarace
- 19. Přetěžování operátorů – těla metod
- 20. Přetěžování operátorů - pravidla Většinu operátorů jazyka C++ lze definovat pro uživatelské datové typy Nelze předefinovat
- 21. Pozor! Pro předefinované operátory nemusí platit identity definované pro základní typy: a=a+b ≠ a+=b a[b] ≠
- 22. copy konstruktor a operator=
- 23. Udržovatelnost kódu Těla operátorů a konstruktorů volání jiné funkce Public část před private Private položky nejsou
- 24. C++ odlišuje objekt a ukazatel na něj Rozdíl oproti jiným jazykům Java, JavaScript, PHP, VisualBasic, ...
- 25. Operátory new a delete
- 26. Chytré řetězce – nápad
- 27. Chytré řetězce - třída operace s řetězci Konstantní funkce, nemodifikuje objekt
- 28. Destruktory
- 29. Vyvolání destruktoru
- 30. Řetězce – implementace
- 31. O něco lepší implementace !!! buf = 0; nebo private !!!
- 32. Implementace kopírování Jde clear() přidat do copy() ???
- 33. Zřetězení
- 34. Připojení řetězce
- 35. Str a jednotlivé znaky
- 36. Výstup
- 37. ... and together
- 38. vztah tříd předek-potomek – hierarchie přesnější názvosloví: základní (base) / odvozená třída (derived class) vícenásobná dědičnost
- 39. pes jako potomek zvířete - definice jez, vyměšuj sedni Přístup pro třídu a potomky
- 40. Konstruktor a destruktor předka
- 41. Potomka lze přiřadit do předka (platí i pro ukazatele) Předka NELZE přiřadit do potomka (platí i
- 42. odlišné chování potomků – pozdní vazba (late binding) Polymorfismus jez jez jez jez
- 43. Polymorfismus - motivace
- 44. Polymorfismus – takto nelze
- 45. Polymorfismus – takto bych to chtěl
- 46. Virtuální funkce - deklarace
- 47. Virtuální funkce - implementace Pes Zvire z = new Zvire; z = new Pes; Zvire *
- 48. Virtuální funkce a konstruktory a destruktory
- 49. Volání virtuálních funkcí b paa a pab pbb
- 50. Abstraktní třída, čistě virtuální funkce
- 51. Abstraktní třídy, virtuální destruktory
- 52. Nesprávné užití dědičnosti Letadlo není potomkem svého motoru Důkaz: Co když má dva motory... Násobná dědičnost?
- 53. Prostory jmen (namespaces)
- 54. Prostory jmen
- 55. Prostory jmen a standardní knihovny
- 56. Vstup a výstup - proudy (streams)
- 57. Streams – hierarchie tříd
- 58. Hlavičkové soubory
- 59. Manipulátory
- 60. Výstup do souboru
- 61. Další metody vstupních proudů
- 62. Spřátelené funkce – vlastní výstup
- 63. Šablony
- 64. Šablony tříd - definice
- 65. Šablony metod, instance šablon
- 66. STL – Standard Template Library
- 67. STL – kontejnery
- 68. STL – kontejnery
- 69. STL – iterátory a metody kontejnerů
- 70. STL – použití iterátorů
- 71. STL – použití asociativního pole ts:
- 72. STL – algoritmy
- 73. STL – použití algoritmů
- 74. STL – chybová hlášení
- 75. string
- 76. Výjimky
- 77. Výjimky - jednoduchý příklad
- 78. Výjimky - jednoduchý příklad
- 79. Výjimky - pravidla
- 80. Specifikace výjimek funkcí
- 81. ... co jsme neprobrali
- 83. Скачать презентацию