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: 15. June 2022
Připomínky k obsahu stránky posílejte na e-mail: peringer AT fit.vutbr.cz