Detail předmětu

Seminář C++

ICP Ak. rok 2011/2012 letní semestr 4 kredity

Aktuální akademický rok

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

Jazyk výuky

česky, anglicky

Zakončení

zápočet

Rozsah

  • 26 hod. cvičení
  • 13 hod. projekty

Zajišťuje ústav

Získané dovednosti, znalosti a kompetence z 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í.

Cíle předmětu

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.

Doporučené prerekvizity

Požadované prerekvizitní znalosti a dovednosti

Nejsou žádné prerekvizity.

Literatura referenční

  • Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014

Osnova seminářů

  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++.

Průběžná kontrola studia

nejméně 50% bodů z projektu

Kontrolovaná výuka

Výuka není kontrolována.

Nahoru