UIBUC18 Objektové programování I (C++)

Filozoficko-přírodovědecká fakulta v Opavě
zima 2012
Rozsah
0/2/0. 3 kr. Ukončení: z.
Vyučující
RNDr. Miroslav Langer, Ph.D. (cvičící)
Mgr. Bc. Tomáš Wagner (cvičící)
Garance
doc. RNDr. Lucie Ciencialová, Ph.D.
Ústav informatiky – Filozoficko-přírodovědecká fakulta v Opavě
Předpoklady
UIBUC02 Algoritmy a programování I || UIKKB09 Algoritmy a programování I || UIKSB12 Algoritmy a programování I || UINK102 Algoritmy a programování I || UINK112 Algoritmy a program. I (C++) || UIN1002 Algoritmy a programování I || UIN1012 Procedurální programování (C)
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
Cíle předmětu
Základy objektového programování v jazyce C++. Student se seznámí s pojmy: třídy a jejich komponenty - data a metody, konstruktor, destruktor, zapouzdření, dědičnost, polymorfismus. Součástí náplně předmětujsou i zásady bezpečného programování a použití vyjímek. V poslední řadě se student seznámí s šablonami, jejich význame v C++, knihovny pro numerické výpočty a vývojem aplikací s využitím open-source knihoven (aplikace s GUI - knihovny QT; vývojové nástroje - QT designer; možnosti kompilace na různých platformách).
Osnova
  • 1. Historické návaznosti jazyka C++, zejména jeho vztah k jazyku C. Standardy C a C++.
    2. Společné a rozdílné prvky jazyků C a C++ (1): datové typy, konstanty, deklarace, výrazy, přiřazovací výrazy a příkazy; základní struktura programu; komentáře; příkazy preprocesoru; relační výrazy a řídicí struktury; vhodný styl psaní programů.
    3. Společné a rozdílné prvky jazyků C a C++ (2): textové řetězce ve stylu C a ve stylu C++; pole, ukazatele a odkazy; funkce.
    4. Standardní knihovna jazyka C++, standardní knihovna šablon.
    5. Základní pojmy OOP: třídy, jejich komponenty - data a metody. Zásady OOP - zapouzdření, datová abstrakce, dědičnost, polymorfismus. Více o deklaracích v C a C++ - paměťové třídy, oblast platnosti jmen, modifikátory). Uživatelské typy (enum, struct, union). Deklarace typedef.
    6. Třídy: Definice tříd (členské proměnné, metody, konstruktory a destruktory); dědičnost tříd (dědění přístupových práv, konflikt jmen, normální a virtuální dědění, konstruktory, destruktory a dědičnost).
    7. Polymorfismus - časná a pozdní vazba. Abstraktní třídy a čistě virtuální metody. Statické atributy a metody.
    8. Přetypování objektů - přetypovací operátory z C, přetypovací konstruktory, nové přetypovací operátory C++, přetypování objektových typů, operátor typeid.
    9. Dynamická alokace paměti. Automatické ukazatele. Třídní ukazatele. Prostory jmen (deklarace a použití, anonymní prostory jmen, standardní prostor jmen, zpřístupnění prostoru jmen, prostory jmen a operátory).
    10. Vstup a výstup v C++. Srovnání se V/V v jazyce C.
    11. Bezpečné programování. Defenzivní programování. (Zásady. Céčkovské "skrčky". Bezpečné konstruktory. Explicitní konstruktory.) Výjimky (Pokusný blok a handlery. Vyvolání výjimky. Zachycení výjimky. Standardní typy výjimek. Výjimky a funkce. Výjimky v konstruktorech a destruktorech. Výjimky v handlerech. Výjimky a alokace paměti. Neošetřené a neočekávané výjimky. Výjimky: pro a proti. Strukturované výjimky.)
    12. Šablony, jejich význam v C++, Knihovny pro numerické výpočty. Vývoj aplikací s využitím open-source knihoven. Aplikace s GUI - knihovny QT. Vývojové nástroje - QT designer, RHIDE. Speciální knihovny Messa, GLUT, OpenGL. Zásady správného vývoje platformově nezávislých aplikací. Možnosti kompilace na různých platformách.
Literatura
    doporučená literatura
  • Miroslav Virius. 1001 tipů a triků pro C++. Computer Press, 2011. ISBN 978-80-251-2941-8. info
  • Jesse Liberty, Bradley L. Jones. Naučte se C++ za 21 dní. Computer Press, 2007. ISBN 978-80-251-1583-1. info
  • Daniel Molkentin. The Book of Qt 4. No Starch Press, 2007. info
  • Šaloun, Petr. Programovací jazyk C++ pro zelenáče. NEOKORTEX s.r.o., 2005. ISBN 80-86330-18-4. info
  • VIRIUS, M. Programování v C++. ČVUT Praha, 1998. ISBN 80-0101-874-1. info
Další komentáře
Předmět je dovoleno ukončit i mimo zkouškové období.
Předmět je zařazen také v obdobích léto 2011, léto 2012, zima 2013, zima 2014, zima 2015, zima 2016, zima 2017, zima 2018, zima 2019, zima 2020, zima 2021.