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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Передача std::unique_ptr в функции

    C++ SELF
    43 уровень,0 лекция
    Разбираем, как правильно передавать std::unique_ptr в функции в C++: когда параметр по значению означает «забираю владение» и требует std::move(...), когда ссылка std::unique_ptr<T>& нужна для управления владельцем, а когда вообще не нужен владелец — достаточно const T& или const T*. В конце — шпаргалка-таблица, мини-практика и типичные ошибки на границе владения.
    Открыта
  • std::unique_ptr — get() / reset() / release()

    C++ SELF
    43 уровень,1 лекция
    Разбираем границы владения в std::unique_ptr: чем отличается «наблюдение» через get() от «уничтожения/замены» через reset() и «передачи владения наружу» через release(). На практике смотрим типичные ловушки: второй владелец из get(), висячие указатели после reset(), утечки и double-free после release(), и как безопасно пересекать границу со «старыми» API.
    Открыта
  • Custom deleter в std::unique_ptr: handle, FILE*

    C++ SELF
    43 уровень,2 лекция
    Разбираем, как превратить std::unique_ptr в универсальную RAII-обёртку для ресурсов, которые освобождаются не через delete: что такое handle, как правильно «подружить» FILE* с fopen/ fclose, как устроен custom deleter (функтор или указатель на функцию), и как безопасно пользоваться get(), reset(), release(). В конце — механика освобождения и типичные ошибки.
    Открыта
  • std::shared_ptr: reference counting и стоимость

    C++ SELF
    43 уровень,3 лекция
    Разбираем, зачем нужен std::shared_ptr, как работает модель reference counting через контрольный блок, почему копирование увеличивает число владельцев (и что показывает use_count()), когда реально уничтожается объект, и сколько стоит совместное владение по памяти и скорости. В конце — практический пример с общим AppContext и разбор типичных ошибок ( reset(), пустые указатели, неверные ожидания от счётчика).
    Открыта
  • std::make_shared — контрольный блок и преимущества

    C++ SELF
    43 уровень,4 лекция
    Разбираем, что на самом деле делает std::make_shared: как устроен контрольный блок ( control block) у std::shared_ptr, почему часто получается «одна аллокация вместо двух», чем опасна ручная обёртка new в shared_ptr, и какие типичные ошибки приводят к double-free и падениям. Закрепляем на мини-примере планировщика задач с совместным владением.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush