====== C++ ====== **C++** je víceparadigmatický jazyk, což znamená, že podporuje procedurální, objektově orientované i generické programování. Jeho mottem je: //"Platíte jen za to, co skutečně používáte"// (Zero-overhead principle). ===== Hlavní vlastnosti ===== * **Výkon:** Díky kompilaci přímo do strojového kódu a absenci Garbage Collectoru patří k nejrychlejším jazykům. * **Správa paměti:** Programátor má plnou kontrolu nad alokací a uvolňováním paměti (pomocí operátorů ''new''/''delete'' nebo moderních Smart Pointers). * **Standardní knihovna (STL):** Obsahuje hotové datové struktury (vektory, mapy) a algoritmy, které jsou vysoce optimalizované. * **Zpětná kompatibilita:** Většina kódu napsaného v jazyce C je platným kódem i v C++. ===== Evoluce jazyka (Moderní C++) ===== Staré C++ bylo často kritizováno pro svou nebezpečnost. Od verze **C++11** se však jazyk zásadně změnil: * **C++11/14:** Přidalo klíčové slovo ''auto'', Lambda funkce a chytré ukazatele (unique_ptr, shared_ptr), které řeší úniky paměti. * **C++17/20:** Přineslo koncepty (Concepts), moduly (Modules) a korutiny, které zjednodušují psaní složitých systémů. ===== Kde se C++ používá? ===== Díky své rychlosti a kontrole dominuje C++ v těchto oblastech: 1. **Herní průmysl:** Unreal Engine a většina AAA her jsou napsány v C++. 2. **Operační systémy:** Jádra Windows a části macOS/[[Linux]]u. 3. **GUI Frameworky:** Například [[Qt]], který umožňuje tvorbu moderních aplikací. 4. **Finanční systémy:** High-frequency trading (HFT) platformy, kde záleží na mikrosekundách. 5. **Vědecké výpočty a AI:** Knihovny jako TensorFlow nebo OpenCV mají jádro v C++. ===== Příklad kódu: Třída a objekt ===== #include #include class Robot { public: std::string jmeno; void pozdrav() { std::cout << "Ahoj, ja jsem " << jmeno << "!" << std::endl; } }; int main() { Robot mujRobot; mujRobot.jmeno = "R2-D2"; mujRobot.pozdrav(); return 0; } ===== Srovnání: C++ vs. Rust ===== Dnes je C++ často srovnáváno s novějším jazykem Rust: ^ Vlastnost ^ C++ ^ Rust ^ | **Bezpečnost paměti** | Na zodpovědnosti programátora. | Zajištěna kompilátorem (Borrow Checker). | | **Rychlost** | Extrémní. | Srovnatelná s C++. | | **Ekosystém** | Obrovský, 40+ let historie. | Moderní, rychle rostoucí. | | **Učení** | Velmi strmá křivka učení. | Náročné na pochopení pravidel vlastnictví. | --- > **Víte, že?** Název C++ je vtipem programátorů. Operátor ''++'' v jazyce C znamená zvýšení hodnoty o 1. C++ je tedy "C zvýšené o jedna" (další krok evoluce). //Související: [[Qt]], [[Assembly Language]], [[glibc]], [[Linux]]//