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.