Obsah
C++
C++ je víceparadigmatický programovací jazyk, který kombinuje efektivitu nízkoúrovňového přístupu k hardwaru s pokročilými abstrakcemi. Je to jazyk s statickou typovou kontrolou a manuální správou paměti, což programátorům dává absolutní kontrolu nad výkonem systému, ale zároveň vyžaduje vysokou míru preciznosti.
Klíčové vlastnosti C++
1. Objektově orientované programování (OOP)
C++ zavedlo do světa C třídy, objekty, dědičnost a polymorfismus. To umožňuje organizovat kód do logických celků, které modelují reálné objekty.
2. Generické programování (Šablony)
Pomocí šablon (templates) lze psát kód, který je nezávislý na datovém typu. Můžete tak vytvořit jeden algoritmus pro řazení, který funguje pro celá čísla, textové řetězce i vlastní objekty.
3. Přímý přístup k paměti
Stejně jako jazyk C, i C++ umožňuje práci s ukazateli (pointers). Programátor může přímo adresovat paměť RAM, což je klíčové pro psaní operačních systémů a ovladačů.
Proces vzniku programu v C++
Jelikož je C++ kompilovaný jazyk, kód prochází několika fázemi, než se stane spustitelným souborem:
1. **Preprocessing:** Zpracování maker a vkládání hlavičkových souborů. 2. **Kompilace:** [[compiler|Compiler]] přeloží kód do jazyka symbolických adres (assembly). 3. **Sestavení (Assembly):** Převod do objektového kódu (strojové instrukce). 4. **Linkování (Linking):** Propojení různých částí kódu a knihoven do jednoho souboru (např. .exe).
Kde se C++ používá?
Díky své extrémní rychlosti najdete C++ všude tam, kde záleží na každé milisekundě:
| Oblast | Příklady |
|---|---|
| Operační systémy | Jádra Windows, macOS i části Linuxu. |
| Herní průmysl | Většina AAA her a herní engine (např. Unreal Engine). |
| Webové prohlížeče | Chrome, Firefox a Safari (renderovací jádra). |
| Finanční systémy | Vysokofrekvenční obchodování na burzách. |
| Grafický software | Produkty Adobe (Photoshop), CAD systémy a DirectX. |
| AI a CV | Knihovny pro Computer Vision (OpenCV) a hluboké učení. |
C++ vs. Moderní jazyky (Java, Python, Rust)
| Vlastnost | C++ | Python / Java | Rust |
|---|---|---|---|
| Rychlost | Maximální (nativní kód). | Nižší (interpret/VM). | Srovnatelná s C++. |
| Správa paměti | Manuální (riziko chyb). | Automatická (Garbage Collector). | Automatická (vlastnictví/borrow checker). |
| Složitost | Vysoká. | Nízká / Střední. | Vysoká. |
Související pojmy: Compiler, C, Pointer, OOP, Unreal Engine, RAM, Strojový kód.
