Нескучное программирование. С++ без аллокаций памяти

Курс посвящён программированию на C++ без использования кучи. Рассматривается какие возможности языка и стандартной библиотеки безопасно применять в условиях ограниченных ресурсов в embedded-системах или игровых проектах, где динамическая память может быть ограничена или запрещена. Вы узнаете, как писать эффективный и…
Средний уровень
4-5 часов в неделю
Сертификат Stepik

О курсе

Многие возможности языка C++ и стандартной библиотеки прозрачно для разработчика используют динамическое выделение памяти — то есть работу с кучей (heap). В  разработке для ПК это почти не проблема: куча есть всегда, и её можно использовать без ограничений. Но для встроенных систем (embedded) или игровой разработки (gamedev) всё сложнее — там динамическая память либо сильно ограничена, либо вообще запрещена.

И тут возникает вопрос: какие именно возможности C++ безопасно использовать, а какие — нет? Ответ не всегда очевиден. Например, некоторые контейнеры STL внутри всегда используют new, а значит — кучу. Даже такие привычные вещи, как std::string или виртуальные функции, могут скрыто приводить к динамическому выделению памяти. В результате разработчик остаётся в замешательстве: насколько сильно придётся “урезать” язык, чтобы его код работал без кучи?

Этот курс как раз об этом — о том, как писать на C++ без использования динамической памяти и при этом сохранять все преимущества современного языка.

Для кого этот курс

Этот курс создан для разработчиков, которым важно писать быстрый и надёжный код без использования динамической памяти. Он будет полезен тем, кто работает с встроенными системами (embedded), играми (gamedev) или занимается разработкой под приставки и мобильные платформы, где любые скрытые выделения памяти могут замедлить работу или вызвать ошибки. Курс также подойдёт опытным C++ разработчикам, которые хотят научиться использовать современные возможности языка и писать эффективный код, сохраняя удобство работы с объектами и полиморфизмом, но без лишних аллокаций в куче.

Начальные требования

Начальные требования для курса:

  1. Базовые знания C++: понимание синтаксиса, функций, классов, структур и указателей.

  2. Опыт работы с объектно-ориентированным программированием (ООП): наследование, полиморфизм, виртуальные функции.

  3. Понимание стандартной библиотеки STL: контейнеры, строки, алгоритмы.

  4. Навыки работы с компилятором и сборкой проекта: знание базовых флагов компилятора, умение запускать и отлаживать программы.

  5. Желательно базовое понимание работы памяти: стек, куча, область данных.

Эти знания помогут быстро включиться в материал и сосредоточиться на оптимизации кода без использования динамической памяти.

Наши преподаватели

Как проходит обучение

Как будет проходить обучение:

Курс построен на сочетании теории и практики. Каждая тема сопровождается пояснением принципов работы C++ без динамической памяти, после чего идут практические примеры. Сначала демонстрируется классическое решение с использованием кучи, а затем предлагается переписать его, используя только статическую или стековую память.

В процессе обучения вы будете:

  • выполнять упражнения по замене стандартных решений на более оптимальные;

  • переписывать код  без использования new/delete;

  • использовать механизмы времени компиляции для замены RTTI и dynamic_cast

  • применять современные возможности C++20 для эффективного и безопасного кода.

Программа курса

загружаем...
Certificate

Сертификат

Сертификат Stepik

Что вы получаете

  • Понимание того, какие возможности C++ используют динамическую память и как их обходить.
  • Практические навыки написания кода без использования кучи, используя только стек и статические буферы.
  • Умение сохранять полиморфизм, интерфейсы и ООП-принципы без виртуальных функций и RTTI.
  • Опыт замены стандартных контейнеров STL на фиксированные структуры данных.
  • Навыки самостоятельной оптимизации и анализа кода на предмет скрытого использования динамической памяти.
  • Подготовку к разработке игровых систем, где работа с кучей ограничена или запрещена.

Сколько стоит обучение

Price: 5 000 
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям

Price: 5 000