Seminář C++: Cílové znalosti
Jazyk ISO C je vhodná prerekvizita (a samozřejmě i znalost programování
obecně), ale je nutné pokročit dále (např. nepoužívat zbytečně nízkoúrovňové operace).
Jazyk C++
-------------------------------------------------------------------
charakteristika jazyka, základní rozdíly mezi jazyky C a C++
typ bool,
typ reference (T&, const T&, T&&), ukazatele (T*, const T*)
přehled operátorů C++ (new, delete, ::, .*, ->*)
typová kontrola v C++, přetypování (static_cast, const_cast, reinterpret_cast)
implicitní argumenty funkcí
základy objektově orientovaného programování a terminologie
srovnání principů modulárního a OO programování
pojmy třída, objekt, metoda, volání metod/posílání zpráv
lambda funkce, "closure"
třídy (class, struct, union), členy tříd,
kontrola přístupu ke členům tříd (private, public, protected),
metody, inline metody, volání metod, klíčové slovo this
statické členy tříd, statické metody,
friend funkce a třídy
vytváření objektů: konstruktory, implicitní konstruktor, copy/move operace
rušení objektů: destruktory, virtuální destruktory
dynamicky vytvořené objekty (operátory new a delete)
[orientačně] ukazatele na členy tříd, operátory .* a ->*
dědičnost, bázové a odvozené třídy
konstruktory, destruktory a dědičnost: pořadí volání
dědění práv přístupu ke členům tříd (private, public, protected)
násobná dědičnost, virtuální bázové třídy
operátory a dědičnost
přetěžování operátorů a funkcí (operátory, konverze, funkce, metody)
C++20 operátor <=>
virtuální metody a polymorfismus
abstraktní třídy, čistě virtuální metody
šablony (template, typename, using), specializace šablon, SFINAE, ...
zpracování výjimek (catch, throw, try, noexcept)
vstup/výstup (cin, cout, cerr, istream, ostream, fstream)
vstup/výstup a řetězce (strstream)
dynamická identifikace typů (RTTI: typeid, type_info),
dynamické přetypování (dynamic_cast)
prostory jmen (namespace, using), ADL
[orientačně] C++20 koncepty, korutiny, moduly
[orientačně] standardní knihovna C++ (STL:kontejnery,algoritmy,iterátory,...)
[velmi orientačně] C++20 standardní knihovna (ranges,...)
Doplňky:
zarovnání (alignas, alignof), little/big endian, adresový prostor
principy sestavování programu (moduly, knihovny, C++20 moduly)
Poslední modifikace:
Připomínky k obsahu stránky posílejte na e-mail:
peringer AT fit.vutbr.cz