Detail předmětu

Seminář C++

FIT-ICPAk. rok: 2018/2019

Přehled vlastností jazyka C++ podle normy ISO. Objekty, třídy, dědičnost, polymorfismus. Přetěžování operátorů a funkcí. Šablony funkcí a tříd. Obsluha výjimek. Použití standardních knihoven, STL.

Garant předmětu

Výsledky učení předmětu

Studenti budou umět využít C++ k programování středně složitých aplikací založených na objektově orientovaném přístupu a také na generickém programování.

Doporučená nebo povinná literatura

  • Eckel B.: Myslíme v jazyku C++, GRADA, 2000
  • Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000 [dostupné elektronicky na WWW]
  • ISO: Working Draft, Standard for Programming Language C++ (N3242). 2011-02-28 [dostupné elektronicky na WWW]
  • Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.

  • Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997
  • Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000
  • Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000
  • Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994
  • ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988
  • ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996
  • ISO: Working Draft, Standard for Programming Language C++ (N3242). 2011-02-28

Způsob a kritéria hodnocení

Nejméně 50% bodů z projektu.

Jazyk výuky

čeština, angličtina

Osnovy výuky

    Osnova přednášek:
    1. Úvod. Charakteristika jazyka ISO C++ (C++98, C++11). Příklady ilustrující použití C++.
    2. Rozdíly mezi C a C++. Deklarace, definice, prostory jmen. Typ reference, typ bool.
    3. Přehled příkazů a operátorů. Principy objektově orientovaného programování v C++, terminologie.
    4. Objekty, třídy, členy tříd. Kontrola přístupu ke členům tříd. Metody, klíčové slovo "this", statické členy tříd.
    5. Vytváření a inicializace objektů: konstruktory, destruktory, operátory new a delete.
    6. Přetěžování funkcí a operátorů. Konverze typů.
    7. Vstup/výstup (iostream, fstream). Definice vstup/výstupních operací. Formátování výstupu, práce se soubory a řetězci.
    8. Dědičnost, bázové a odvozené třídy. Násobná dědičnost, virtuální bázové třídy. Volání konstruktorů a destruktorů, operátory a dědičnost.
    9. Polymorfismus, virtuální metody, abstraktní třídy. Dynamická identifikace typů (RTTI), dynamické přetypování.
    10. Generické třídy a funkce (šablony). Specializace a částečná specializace šablon.
    11. Standardní knihovna, algoritmy, iterátory, kontejnery, funkční objekty. Vytváření knihoven v C++.
    12. Zpracování výjimek. Specifikace a obsluha výjimek.
    13. Přehled knihoven. Ukazatele na členy tříd. Metody efektivního programování v C++.

    Osnova ostatní - projekty, práce:
    • projekt

Cíl

Cílem je naučit studenty základy objektově orientovaného přístupu v jazyce C++ a základy generického programování s využitím šablon.

Zařazení předmětu ve studijních plánech

  • Program IT-BC-3 bakalářský

    obor BIT , 2. ročník, letní semestr, 4 kredity, povinně volitelný

Typ (způsob) výuky

 

Cvičení odborného základu

26 hod., nepovinná

Vyučující / Lektor

Osnova


  1. Úvod. Charakteristika jazyka ISO C++ (C++11, C++17). Příklady ilustrující použití C++.
  2. Rozdíly mezi C a C++. Deklarace, definice, prostory jmen. Typ reference, typ bool.
  3. Přehled příkazů a operátorů. Principy objektově orientovaného programování v C++, terminologie.
  4. Objekty, třídy, členy tříd. Kontrola přístupu ke členům tříd. Metody, klíčové slovo "this", statické členy tříd.
  5. Vytváření a inicializace objektů: konstruktory, destruktory, operátory new a delete.
  6. Přetěžování funkcí a operátorů. Přetypování.
  7. Vstup/výstup (iostream, fstream). Definice vstup/výstupních operací. Formátování výstupu, práce se soubory a řetězci.
  8. Dědičnost, bázové a odvozené třídy. Násobná dědičnost, virtuální bázové třídy. Volání konstruktorů a destruktorů, operátory a dědičnost.
  9. Polymorfismus, virtuální metody, abstraktní třídy. Dynamická identifikace typů (RTTI), dynamické přetypování.
  10. Generické třídy a funkce (šablony). Specializace a částečná specializace šablon.
  11. Standardní knihovna, algoritmy, iterátory, kontejnery, funkční objekty. Vytváření knihoven v C++.
  12. Zpracování výjimek. Specifikace a obsluha výjimek.
  13. Přehled knihoven. Metody efektivního programování v C++.

Projekt

13 hod., povinná

Vyučující / Lektor

Osnova


  • projekt