====== Programování v C++ ====== **C++** je výkonný, kompilovaný, víceparadigmatický programovací jazyk, který v roce 1979 vyvinul Bjarne Stroustrup jako rozšíření jazyka C o vlastnosti objektově orientovaného programování. Patří do [[it:lang:3GL|třetí generace jazyků]] a dodnes je standardem pro aplikace vyžadující maximální výkon a efektivitu. ===== 1. Klíčové vlastnosti C++ ===== * **Výkon a efektivita:** C++ umožňuje přímou manipulaci s pamětí a hardwarem, což z něj dělá volbu číslo jedna pro operační systémy a herní enginy. * **Objektově orientované programování (OOP):** Podporuje třídy, dědičnost a polymorfismus, což pomáhá organizovat složitý kód. * **Standardní knihovna šablon (STL):** Bohatá sada připravených datových struktur (vektory, seznamy, mapy) a algoritmů. * **Víceparadigmatičnost:** Umožňuje psát kód procedurální, objektový i generický (pomocí šablon). ===== 2. Správa paměti: Unikátnost C++ ===== Na rozdíl od jazyků jako Java nebo Python, C++ standardně nemá **Garbage Collector** (automatický čistič paměti). * **Manuální správa:** Programátor sám rozhoduje, kdy paměť alokuje (`new`) a kdy ji uvolní (`delete`). * **Ukazatele (Pointers):** Proměnné, které uchovávají přímo adresu v [[it:hw:ram|RAM]]. * **Moderní C++ (C++11 a novější):** Zavedlo tzv. **chytré ukazatele** (`std::unique_ptr`, `std::shared_ptr`), které minimalizují riziko úniku paměti (memory leaks). ===== 3. Proces překladu (Kompilace) ===== C++ je čistě kompilovaný jazyk. Proces převodu zdrojového kódu do spustitelného programu má několik fází: 1. **Preprocesor:** Zpracuje direktivy (např. `#include`). 2. **Kompilátor:** Přeloží kód do jazyka symbolických adres (Assembly). 3. **Asembler:** Vytvoří objektový soubor (strojový kód). 4. **Linker:** Spojí objektové soubory a knihovny do výsledného souboru (`.exe`, `.out`). ===== 4. Oblasti využití ===== ^ Oblast ^ Příklad ^ | **Operační systémy** | Windows, macOS (jádra jsou psána v C/C++). | | **Hry a enginy** | Unreal Engine, hry jako Witcher 3 nebo Counter-Strike. | | **Prohlížeče** | Google Chrome, Firefox (jádra pro vykreslování). | | **Finance** | Vysokofrekvenční obchodování (HFT), kde rozhodují mikrosekundy. | | **Výpočty a AI** | Knihovny jako TensorFlow nebo platforma [[it:lang:cuda|CUDA]]. | ===== 5. Ukázka kódu ===== Klasický program „Hello World“ s ukázkou třídy: #include #include class Zdravic { public: void pozdrav(std::string jmeno) { std::cout << "Ahoj, " << jmeno << "!" << std::endl; } }; int main() { Zdravic mujObjekt; mujObjekt.pozdrav("WikiProgramatore"); return 0; } ---- //Související články:// * [[it:lang:3GL|Třetí generace jazyků]] * [[it:lang:cuda|CUDA: Paralelní C++ na GPU]] * [[it:dev:oop|Základy objektově orientovaného programování]] //Tagy: {{tag>programming cpp language software_development hardware_control}}//