О курсе
Многие возможности языка C++ и стандартной библиотеки прозрачно для разработчика используют динамическое выделение памяти — то есть работу с кучей (heap). В разработке для ПК это почти не проблема: куча есть всегда, и её можно использовать без ограничений. Но для встроенных систем (embedded) или игровой разработки (gamedev) всё сложнее — там динамическая память либо сильно ограничена, либо вообще запрещена.
И тут возникает вопрос: какие именно возможности C++ безопасно использовать, а какие — нет? Ответ не всегда очевиден. Например, некоторые контейнеры STL внутри всегда используют new, а значит — кучу. Даже такие привычные вещи, как std::string или виртуальные функции, могут скрыто приводить к динамическому выделению памяти. В результате разработчик остаётся в замешательстве: насколько сильно придётся “урезать” язык, чтобы его код работал без кучи?
Этот курс как раз об этом — о том, как писать на C++ без использования динамической памяти и при этом сохранять все преимущества современного языка.
Для кого этот курс
Начальные требования
Начальные требования для курса:
-
Базовые знания C++: понимание синтаксиса, функций, классов, структур и указателей.
-
Опыт работы с объектно-ориентированным программированием (ООП): наследование, полиморфизм, виртуальные функции.
-
Понимание стандартной библиотеки STL: контейнеры, строки, алгоритмы.
-
Навыки работы с компилятором и сборкой проекта: знание базовых флагов компилятора, умение запускать и отлаживать программы.
-
Желательно базовое понимание работы памяти: стек, куча, область данных.
Эти знания помогут быстро включиться в материал и сосредоточиться на оптимизации кода без использования динамической памяти.
Наши преподаватели
Как проходит обучение
Как будет проходить обучение:
Курс построен на сочетании теории и практики. Каждая тема сопровождается пояснением принципов работы C++ без динамической памяти, после чего идут практические примеры. Сначала демонстрируется классическое решение с использованием кучи, а затем предлагается переписать его, используя только статическую или стековую память.
В процессе обучения вы будете:
-
выполнять упражнения по замене стандартных решений на более оптимальные;
-
переписывать код без использования new/delete;
-
использовать механизмы времени компиляции для замены RTTI и
dynamic_cast -
применять современные возможности C++20 для эффективного и безопасного кода.
Программа курса
Сертификат
Что вы получаете
- Понимание того, какие возможности C++ используют динамическую память и как их обходить.
- Практические навыки написания кода без использования кучи, используя только стек и статические буферы.
- Умение сохранять полиморфизм, интерфейсы и ООП-принципы без виртуальных функций и RTTI.
- Опыт замены стандартных контейнеров STL на фиксированные структуры данных.
- Навыки самостоятельной оптимизации и анализа кода на предмет скрытого использования динамической памяти.
- Подготовку к разработке игровых систем, где работа с кучей ограничена или запрещена.