классы, объекты, владение ресурсамиclasses, objects, resource ownership
Базовый набор концепций ООП плюс полиморфизм (конструкторы, наследование, полиморфизм, поля, члены типа и другие — из 14 базовых убраны свойства и события, которых в C++ нет как отдельной языковой конструкции) плюс то, что делает C++ особенным: RAII, Rule of 0/3/5, виртуальные таблицы, слайсинг. Дополняет kb/oop_cpp.md (шпаргалка по SOLID и владению) страницами того же формата, что stl/ и algorithms/. Все 17 карточек заполнены.The baseline OOP concept set plus polymorphism (constructors, inheritance, polymorphism, fields, type members, and more — 2 of the 14 baseline concepts, properties and events, are omitted since C++ has no distinct language construct for them) plus what makes C++ distinctive: RAII, the Rule of 0/3/5, vtables, slicing. Complements kb/oop_cpp.md (a SOLID/ownership cheat sheet) with pages in the same format as stl/ and algorithms/. All 17 cards are filled in.
статус и связь с существующей шпаргалкойstatus and relation to the existing cheat sheet
2 подраздела и все 17 карточек написаны полностью. Базовые концепции ООП: определение классов, конструкторы, деструкторы, поля, методы, сигнатуры и перегрузка (базовый механизм класса и его членов), индексаторы (operator[] с const/неconst версиями и C++23 многомерным синтаксисом), вложенные классы (видимость имени, доступ к static-членам), константы (static constexpr, устранение ритуала отдельного определения через inline-переменные C++17), наследование, полиморфизм, копирование объектов (слайсинг) и члены типа (using-алиасы, enum class). К 14 базовым концепциям ООП добавлен полиморфизм, а свойства и события убраны — в C++ это не отдельная языковая конструкция, а условность (getter/setter методы, std::function-колбэки). Специфика C++: виртуальные таблицы (устройство vptr/vtable, ромбовидная проблема, PE-размещение), RAII (детерминированное освобождение ресурсов через деструктор), Rule of 0/3/5 (деструктор молча подавляет неявные move-операции — ключевая грабля) и move-семантика (std::move как каст, RVO/NRVO, когда move не бесплатен) — материал развёрнут из ядра, уже существовавшего в kb/oop_cpp.md, в полный формат страницы.2 subsections and all 17 cards are fully written. Baseline OOP concepts: class definition, constructors, destructors, fields, methods, signatures & overloading (the basic mechanics of a class and its members), indexers (operator[] with const/non-const overloads and C++23 multi-dimensional syntax), nested classes (name visibility, access to the outer class's static members), constants (static constexpr, removing the separate-definition ritual via C++17 inline variables), inheritance, polymorphism, copying objects (slicing), and type members (using aliases, enum class). Polymorphism was added to the 14 baseline OOP concepts, while properties and events were dropped — C++ has no distinct language construct for either (just a getter/setter convention, std::function callbacks). C++-specific: virtual tables (vptr/vtable mechanics, the diamond problem, PE placement), RAII (deterministic resource release via the destructor), the Rule of 0/3/5 (a destructor silently suppresses the implicit move operations — the key trap), and move semantics (std::move as a cast, RVO/NRVO, when a move isn't free) — material expanded from the core already present in kb/oop_cpp.md into the full page format.