Návrh Školení
- Co je to vestavěný systém?
- Jednoduchá definice
- Několik milníků vývoje
- Charakteristické rysy
- Proč použít C++?
- Srovnání s jazykem C
- C: skutečně podmnožina C++, téměř
- Výkonnostní aspekty
- Přidané „bezplatné“ funkce v C++
- Proč by se neměl používat C++?
- Třídy
- Proměnné členy třídy
- Instanční proměnné
- Globální proměnné třídy
- Funkce členy třídy
- Metody instance
- Statické metody třídy
- Implicitní metody
- Konstruktor
- Inicializace objektů
- Delegování inicializace
- Destruktor
- Přiřazovací operátor kopírování
- Konstruktor
- Přesunová sémantika – jak se vyhnout zbytečnému hlubokému kopírování dat
- Struktury v C++
- Balíčky a jmenné prostory
- Proměnné členy třídy
- Dědičnost
- Základní principy
- Praktická aplikace
- Vliv na výkon systému
- Vícenásobná dědičnost
- Virtuální dědičnost
- Polymorfismus
- Přehled možností
- Virtuální funkce
- Virtuální destruktor
- Implementace polymorfismu
- Informace o typu za běhu, tzv. RTTI
- Efekt na výkonnost systému
- Šablony
- Představení šablon
- Funkční šablony
- Třídní šablony
- Variadické šablony
- Problematika nadbytečného generování kódu
- Různé strategie implementace šablon
- Tematika metaprogramování pomocí šablon
- Šablony vs. dědičnost – kterou variantu zvolit?
- Ošetření chyb
- Pojem a použití výjimek
- Vliv na výkonnost programu
- Praktická implementace výjimek
- Inline funkce
- Kdy je vhodné jejich použití?
- Různé strategie optimalizace pomocí inline kódu
- Inicializace systému
- Spouštění programu na úrovni celého systému
- Část z pohledu jazyka C
- Část z pohledu jazyka C++
- Standardní knihovna
- Standardní šablonová knihovna, tzv. STL
- Knihovna iostream pro vstup/výstup
- Hlavní rozšíření knihovny STL díky C++11:
- Přesunová sémantika
- Variadické šablony
- Souběžné programování
- Správa paměti
- Model správy paměti v C++
- Použití typů z knihovny stdint
- Atomické proměnné a jejich operace
- Různé strategie alokace a uvolňování paměti
- Použití obyčejných proměnných v C++
- Možnost použití operátoru placement new pro přímé alokování v paměti
- Vlastní strategie správy paměti
- Model správy paměti v C++
- Interakce mezi C a C++
- Manipulace s názvy symbolů (name mangling)
- Statická inicializace proměnných
- Dynamické alokování paměti v obou jazycích
- Struktury a jejich obsah
- Pojem POD – tj. jednoduché datové typy bez složitých vlastností
- Návrhové vzory v praxi
- RAII – princip přiřazení zdrojů k jejich inicializaci
- Paměťově mapovaný vstup/výstup
- Ošetřování přerušení v programu
- Koncept a implementace inicializace statických objektů
Požadavky
k účasti na tomto kurzu nejsou vyžadovány žádné specifické předpoklady.
Reference (3)
Podrobné vysvětlení a jemné opakování klíčových bodů, což skutečně velmi efektivně předávalo znalosti. Rodovo ochotu k podstatné kontrole neobvyklých otázek, které jsme zvedli, aby se ujistil, že jeho odpovědi byly 100 % správné. Rovněž jeho zájem o diskusi o výhodách a nevýhodách alternativních stylů kódu, takže jsme se naučili nejen, jak používat C++ na naši zamýšlenou cestu, ale i proč by to mělo být děláno právě tímto způsobem.
Nick Dillon - cellxica Ltd
Kurz - Using C++ in Embedded Systems - Applying C++11/C++14
Přeloženo strojem
Užíval jsem si čas, který jsme měli na řešení cvičení. Bylo velmi užitečné, protože nám to umožnilo strávit čas zvažováním našich řešení a jejich implementací.
Valeriu - Siemens
Kurz - Using C++ in Embedded Systems - Applying C++11/C++14
Přeloženo strojem
Podrobnosti o tom, jak se kompilátor chová v závislosti na použití syntaxe. Sekce "Kvíz" jsou velmi stimulující.
Andrea Pomatto
Kurz - Using C++ in Embedded Systems - Applying C++11/C++14
Přeloženo strojem