JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • =default — генерируем операции как часть API

    C++ SELF
    45 уровень,0 лекция
    Разбираем, зачем в C++ явно писать = default: как «вернуть» конструктор по умолчанию после добавления пользовательского конструктора, как сделать копирование/присваивание явной частью контракта типа, почему пустое тело {} — это не то же самое, что default-генерация, и где лучше размещать default-определения (внутри типа или в .cpp) на примерах мини-приложения TaskBox.
    Открыта
  • `=delete` — запреты копирования как защита дизайна

    C++ SELF
    45 уровень,1 лекция
    Разбираем, чем конструкция = delete отличается от оператора delete, как удалённые функции защищают интерфейс типа, зачем запрещать конструктор по умолчанию, как правильно делать типы non-copyable (удаляя и копирующий конструктор, и operator=), а также как управлять API через удаление нежелательных перегрузок. В конце — мерmaid-схема принятия решения и разбор типичных ошибок.
    Открыта
  • Non-copyable типы: сценарии unique ownership, mutex‑подобные

    C++ SELF
    45 уровень,2 лекция
    Разбираем, почему запрет копирования — это часть контракта типа в C++: уникальное владение через std::unique_ptr, владение системными дескрипторами на примере std::ofstream, и «эксклюзивность», похожую на поведение mutex-объектов. Учимся проектировать честные сигнатуры ( const T & для чтения и T & для изменения), понимать ошибки про = delete и выстраивать границы владения через «контекст приложения».
    Открыта
  • Rule of Five: лучше чам Rule of Zero

    C++ SELF
    45 уровень,3 лекция
    Разбираем практическую причину, почему в C++ «один деструктор» часто запускает эффект домино: копирование по умолчанию начинает копировать «ручку» на ресурс (например, T *) и приводит к double-free. Формулируем, когда возникает Rule of Five, какие пять спец-функций за это отвечают (копирование/перемещение), и почему в modern C++ чаще выигрывает Rule of Zero с RAII-полями ( std :: vector, std :: string, std :: unique_ptr) или честный запрет копирования через = delete.
    Открыта
  • Move‑конструктор и move‑оператор присваивания

    C++ SELF
    45 уровень,4 лекция
    Разбираем, зачем в C++ нужна move‑семантика, как работает перенос владения ресурсом (а не копирование данных), что означает rvalue‑ссылка T&&, почему std::move «ничего не двигает», а лишь разрешает перемещение, и как правильно писать move‑ctor и move‑assign для типа, вручную владеющего памятью (на примере Buffer с new []/ delete []). В конце — контракт moved‑from состояния, сравнение copy vs move и типичные ошибки (утечки, double‑free, использование объекта после перемещения).
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush