Detail předmětu
Seminář C++
ICP Ak. rok 2023/2024 letní semestr 4 kredity
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
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. seminář
- 13 hod. projekty
Bodové hodnocení
- 100 bodů projekty
Zajišťuje ústav
Cvičící
Stránky předmětu
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.
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í.
Proč je předmět vyučován
Alespoň základní znalost C++ je velmi potřebná pro praxi a také pro získání rozhledu v programovacích jazycích, paradigmatech programování atd.
Doporučené prerekvizity
- Jazyk C (IJC)
Literatura studijní
- Teaching materials available on WWW.
- Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
- ISO: Working Draft, Standard for Programming Language C++ (N4659). 2017-03-21 [dostupné elektronicky na WWW]
- ISO: Working Draft, Standard for Programming Language C++ (N4860). 2020-03-31
Literatura referenční
- Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
-
Stroustrup, B.: Programming Principles and Practice Using C++, 2nd edition, Addison-Wesley, 2014
- ISO: Working Draft, Standard for Programming Language C++ (N4928). 2022-12-18
Osnova seminářů
- Úvod. Charakteristika jazyka ISO C++ (C++11, C++17, C++20, C++23). Příklady ilustrující použití C++.
- Rozdíly mezi C a C++. Deklarace, definice, prostory jmen. Typ reference, typ bool.
- Přehled příkazů a operátorů. Principy objektově orientovaného programování v C++, terminologie.
- Objekty, třídy, členy tříd. Kontrola přístupu ke členům tříd. Metody, klíčové slovo "this", statické členy tříd.
- Vytváření a inicializace objektů: konstruktory, destruktory, operátory new a delete.
- Přetěžování funkcí a operátorů. Přetypování.
- Vstup/výstup (iostream, fstream). Definice vstup/výstupních operací. Formátování výstupu, práce se soubory a řetězci.
- 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.
- Polymorfismus, virtuální metody, abstraktní třídy. Dynamická identifikace typů (RTTI), dynamické přetypování.
- Generické třídy a funkce (šablony). Specializace a částečná specializace šablon.
- Standardní knihovna, algoritmy, iterátory, kontejnery, funkční objekty. Vytváření knihoven v C++. Moduly v C++20.
- Zpracování výjimek. Specifikace a obsluha výjimek.
- Přehled knihoven. Metody efektivního programování v C++.
Osnova ostatní - projekty, práce
- projekt
Průběžná kontrola studia
Nejméně 50% bodů z projektu.
Podmínky zápočtu
Nejméně 50% bodů z projektu.
Zařazení předmětu ve studijních plánech
- Program BIT, 2. ročník, povinně volitelný skupina T
- Program BIT (anglicky), 2. ročník, povinně volitelný skupina T
- Program IT-BC-3, obor BIT, 2. ročník, povinně volitelný skupina T