C++ – Praktické programování pro pokročilé (CPP2)

Programování, C, C++

Moderní C++ se od původních verzí z osmdesátých let značně liší. Současné verze reagují především na požadavky na extrémní výkon, nízké latence a funkční bezpečnost a značně tak ulehčuje použití C++ především v prostředí průmyslu.

Posledních několik verzí standardu posouvá C++ především k možnosti eliminovat dynamickou alokaci a vyhnout se dalším zdrojům nečekaných zpoždění. Zároveň moderní C++ umožňuje psát výkonnější, čitelnější, srozumitelnější a v mnoha případech i bezpečnější kód.

Kurz je aktualizovaný na standardy C++20, C++23 a C++26. Po dohodě lze přizpůsobit pro některou ze starších verzí nebo naopak připravit zkrácenou verzi na vyzkoušení nových standardů.

TOTO ŠKOLENÍ VÁM POMŮŽE:

  • Prohloubit a upevnit znalost programovacího jazyka C++ a jeho standardní knihovny
  • Aktualizovat znalost jazyka a knihovny na verze standardu a aktuální zvyklosti
  • Porozumět detailům objektově orientovaného datového modelu v C++ a jeho důsledkům

KDO BY SE MĚL KURZU ZÚČASTNIT?

  • Zkušenější vývojáři embedded systémů a průmyslových aplikací
  • Vývojáři serverových aplikací s požadavky na vysoký výkon
  • Zájemci o programovací jazyky a detaily jejich zpracování

Privátní školení a termíny na míru

Specifičnost tohoto školení a nízký zájem jednotlivců neumožňuje pro tento kurz vypisovat veřejné termíny. Tento kurz nabízíme pouze jako uzavřené privátní školení. Obsah, délka a termíny kurzů budou vytvořeny podle vašich specifických potřeb.

Cenovou nabídku vám rádi připravíme na základě vašich požadavků a cílů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.

KDE A KDY KURZ PROBÍHÁ?

Kontaktujte nás

S námi máte na výběr: Přijďte na kurz osobně do naší učebny, nebo se ke kurzu připojte online. Pokud preferujete online formu, uveďte prosím do poznámky v objednávce "Připojím se virtuálně".
Více informací k hybridní formě školení naleznete zde.

Náplň kurzu:

Skrýt detaily
  • Možnosti programovacího jazyka C++
    1. Moderní C++ až po nejnovější C++26
    2. V čem se C++ liší od ostatních jazyků
    3. Současnost a budoucnost C++ v embedded
  • Uložení objektů v paměti
    1. Alokace na zásobníku a haldě
    2. Hromadná alokace paměti a kontejnery
    3. Inicializace alokovaných objektů
  • Pořadí inicializace objektů
    1. Globální dvoufázová inicializace
    2. Inicializace částí instance třídy
    3. Lokální inicializace a static
  • Práce s raw ukazateli
    1. Pointerová aritmetika
    2. Vlastnictví a půjčování
    3. Pokročilá alokace paměti
  • Smart ukazatele
    1. Alokace objektů přes smart pointery
    2. Sdílené pointery a slabé reference
    3. Reference a reference wrappery
  • Iterátory, ranges a views
    1. Od ukazatelů po iterátory
    2. Knihovna pro práci s rozsahy
    3. Praktické řetězení views
  • Přesouvání objektů mezi místy
    1. Kopírování, move a forwarding
    2. Konstruktory a operátor přiřazení
    3. Optimalizace návratové hodnoty (RVO)
  • Dědičnost a polymorfismus
    1. Virtuální a abstraktní metody
    2. Povinné virtuální destruktory
    3. Vícenásobná a virtuální dědičnost
  • Polymorfní proměnné a závislosti
    1. Polymorfní reference (borrowing)
    2. Polymorfní smart pointery
    3. Použití std::enable_shared_from_this (CRTP)
  • Polymorfismus bez virtuálních metod
    1. Nevyžaduje dynamickou alokaci
    2. Typ variant a visitor pattern
    3. Lambda funkce a overload pattern
  • Modularita
    1. Hlavičkové soubory a #pragma once (header)
    2. Jmenné prostory a using (namespace)
    3. Podpora modulů v C++ (C++20, C++23)
  • Práce s bity a bajty
    1. Číselné typy pevné šířky
    2. Endianess a byte order (C++20, C++23)
    3. Bitové registry a mapy
  • Ošetření chyb a ladění programů
    1. Uživatelské a programátorské chyby
    2. Systém výjimek (exceptions)
    3. Ladění pomocí debuggeru
  • Tvorba korektních programů
    1. Nedefinované chovnání
    2. Použití sanitizerů při ladění
    3. Statické analyzátory
Předpokládané znalosti:
Zkušenost s programováním v jazyce C++.
Doporučený předchozí kurz:
C++ – Základy programování v moderním C++ (CPP1)
Doporučený následný kurz:
C++ – Metaprogramování a výkonné aplikace (CPP5)
Časový rozvrh:
3 dny (9:00hod. - 17:00hod.)

Vybrané zákaznické reference

Siemens, s.r.o., Daniel H.
C++ – Praktické programování pro pokročilé ( CPP2)
"Plná spokojenost s průběhem školení. Vzhledem k malému počtu účastníků jsme si mohli nechat přizpůsobit témata k našim potřebám, včetně probrání základů původně neplánovaných kapitol. Lektor během školení rychle reagoval na dotazy které byly i mimo rozsah kapitol školení a aktivně pomáhal s odladěním chyb v řešených programech."
Honeywell, spol. s.r.o., Marek M.
C++ – Praktické programování pro pokročilé ( CPP2)
"S kurzem jsem maximálně spokojeny, nemam mu co vytknout."
Institut klinické a experimentální medicíny, Jiří G.
C++ – Praktické programování pro pokročilé ( CPP2)
"Chtěl jsem se dozvědět také něco o vícevláknových aplikacích, ale pak jsem zjistil, že je tomu věnován celý 3denní kurz :-)"
Akkodis CZ s.r.o., Jiří Š.
C++ – Praktické programování pro pokročilé ( CPP2)
"Školení bylo za mne velmi povedené. Kladně hodnotím jak zázemí školícího centra, tak znalosti pana lektora."
Honeywell, spol. s.r.o., Jakub B.
C++ – Praktické programování pro pokročilé ( CPP2)
"nejvetsim prinosem pro me bylo pochopeni trid a dedicnosti mezi tridami"
Siemens, s.r.o., Zdeněk P.
C++ – Praktické programování pro pokročilé ( CPP2)
"Velmi spokojen"
Siemens, s.r.o., Jindřich K.
C++ – Praktické programování pro pokročilé ( CPP2)
"Pan Zahradník se očividně v tématice vyzná. Velmi oceňuji filozofii využívání nejmoderních standardů jazyka, kterou školitel zastává. Jakékoliv dotazy vždy ochotně zodpověděl a mezi dny i dohledával informace. Celkově spokojenost. "
Digiteq Automotive s.r.o., Adam K.
C++ – Praktické programování pro pokročilé ( CPP2)
"Skvělé školení, lektor měl obrovský přehled. "
Digiteq Automotive s.r.o., Jan R.
C++ – Praktické programování pro pokročilé ( CPP2)
"Velmi hezky vysvětlené témata do dosti podrobností. Bylo znát, že lektor má témata velmi nastudované a používané. Příjemný pokec na podobné témata i na obědě :)"
Digiteq Automotive s.r.o., Ondřej S.
C++ – Praktické programování pro pokročilé ( CPP2)
"Super. Lektor rozumi latce na expertni urovni. Osvezil jsem si veci co jsem zapomnel a naucil se spoustu novych veci."
Digiteq Automotive s.r.o., Jan D.
C++ – Praktické programování pro pokročilé ( CPP2)
"Celkově mám ze školení skvělý pocit. Lektor je skutečným odborníkem a to nejen na C++, nechybělo tedy porovnání napříč programovacími jazyky."
Digiteq Automotive s.r.o., Jaroslav M.
C++ – Praktické programování pro pokročilé ( CPP2)
"Osobně mi velice vyhovoval formát kódění před všemi místo koukaní do slidů. Co se týče celkového dojmu ze školení jsem velice spokojený. Zároveň mi přišlo velice užitečný porovnání s ostatními jazyky."
Digiteq Automotive s.r.o., Jan H.
C++ – Praktické programování pro pokročilé ( CPP2)
"Největším přínosem byly praktické zkušenosti z praxe a cvičení"
Digiteq Automotive s.r.o., Jan H.
C++ – Praktické programování pro pokročilé ( CPP2)
"Oproti základnímu kurzu mi přišlo lepší zadání cvičení. Nebyl jsem z nich zmatený. Nevím, jestli došlo k nějaké změně, nebo je to jen náhoda, každopádně to bylo lepší. Zbytek kurzu byl ve stejné (tedy dobré) kvalitě jako začátečnický kurz. Osobní přístup lektora mi velmi vyhovoval."
Digiteq Automotive s.r.o., David S.
C++ – Praktické programování pro pokročilé ( CPP2)
"Velmi zajímavé praktické příklady, jednotlivá témata byla rozebrána dostatečně do hloubky. Po celou dobu školení byl prostor pro dotazy, což hodnotím velice kladně. A to vše v příjemném prostředí s možností drobného občerstvení."
ERA a.s., Libor M.
C++ – Praktické programování pro pokročilé ( CPP2)
"Kurz splnil mé očekávání."