Paměť a zdroje
Model vlastnictví Master C++ – od nezpracovaných ukazatelů přes chytré ukazatele a sémantiku pohybu – k psaní kódu, který nikdy neunikne.
Ukazatele a reference
Ukazatele: adresy, dereferencování a aritmetika
Pochopte ukazatele jako adresy paměti, naučte se operátory adres a dereferencí, aritmetiku ukazatelů v polích, konstantní správnost s ukazateli a to, kdy jsou v moderním C++ stále vhodné nezpracované ukazatele.
Reference: Lvalue, Rvalue & Pitfalls
Prozkoumejte lvalue a rvalue reference, porozumějte hodnotovým kategoriím C++, naučte se pravidla srážení referencí a přeposílání referencí a vyhněte se visícím referenčním chybám.
Dynamická paměť: nová, smazat a jejich nebezpečí
Zjistěte, jak dynamická alokace funguje s novými a odstraněnými, pochopte nebezpečí úniků paměti, double-free a use-after-free, a zjistěte, proč by moderní C++ měl obsahovat nula raw new/delete.
Inteligentní ukazatele
std::unique_ptr: Výhradní vlastnictví
Zjistěte, jak std::unique_ptr poskytuje výhradní vlastnictví s nulovou režií, jak používat make_unique, vlastní odstraňovače pro prostředky C a vzory továrních funkcí.
shared_ptr, slabý_ptr a grafy vlastnictví
Pochopte sdílené vlastnictví počítané s referencí pomocí shared_ptr, cykly přerušení pomocí slabé_ptr, naučte se o řídicích blocích a aliasingu a zjistěte, kdy je shared_ptr špatnou volbou.
Sémantika pohybu a RAII
Sémantika přesunu a std::přesun
Pochopte problém, který řeší sémantika přesunu, jak std::move je přetypování (nikoli přesun), implementujte konstruktory přesunu a přiřazení přesunu a zjistěte, proč je noexcept kritický pro výkon kontejneru.
Perfect Forwarding & std::forward
Pochopte, proč jsou pojmenované odkazy rvalue lvalue, naučte se kanonický vzor předávání pomocí std::forward a podívejte se, jak emplace_back používá varadické předávání k vytváření objektů na místě.
RAII: Vzor základního zdroje
Learn RAII (Resource Acquisition Is Initialization) — the core C++ pattern for exception-safe resource management. Implement RAII wrappers, understand lock_guard and scoped_lock, and learn why RAII types must be move-only or ref-counted.