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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • RAII как принцип — ресурс внутри объекта‑владельца

    C++ SELF
    42 уровень,0 лекция
    Разбираем принцип RAII в C++: что считается «ресурсом», почему безопаснее привязывать владение к времени жизни объекта (scope), как деструктор гарантированно освобождает захваченное через new (и почему для массива нужен delete []), а также какие ошибки чаще всего ломают этот подход — двойное освобождение, путаница delete/ delete [], раздача «сырых» указателей и ручной вызов деструктора.
    Открыта
  • RAII в стандартной библиотеке: потоки, контейнеры

    C++ SELF
    42 уровень,1 лекция
    Разбираем, как RAII «встроен» в стандартную библиотеку C++: контейнеры std::string и std::vector как владельцы памяти, потоки ( std::stringstream, std::ifstream/ std::ofstream) как владельцы буферов и файловых дескрипторов, а также блокировки через std::mutex и std::lock_guard. Плюс мини-пример “TaskBook” без ручных new/ delete и список типичных ошибок: «долгоживущие» указатели на элементы контейнеров, ручное close()/ unlock() поверх RAII и слишком широкие критические секции.
    Открыта
  • Правило modern C++: избегаем delete в прикладном коде

    C++ SELF
    42 уровень,2 лекция
    Разбираем практическое правило modern C++: если в прикладном коде появляется delete, это почти всегда сигнал проблем с владением. Учимся жить без ручного освобождения памяти через контейнеры ( std::vector, std::string), «невладеющие» указатели ( T * как nullable-ссылка), возврат результата по значению и перенос освобождения ресурса внутрь RAII-владельца (деструктор). В конце — мини-схема принятия решений и список типичных ошибок.
    Открыта
  • std::unique_ptr и std::make_unique

    C++ SELF
    42 уровень,3 лекция
    Разбираем, почему «голый» указатель T * хранит только адрес и не выражает владение, чем помогает подход RAII, как std::unique_ptr<T> гарантирует единственного владельца и автоматическое освобождение ресурса в деструкторе, и почему создавать объекты стоит через std::make_unique, а не через new. Также обсудим пустое состояние ( nullptr), проверки if ( p), практический пример с опциональными деталями задачи и типичные ошибки (ручной delete, разыменование пустого указателя).
    Открыта
  • Перемещение владения — std::move

    C++ SELF
    42 уровень,4 лекция
    Разбираем, почему std::unique_ptr принципиально не копируется (защита от double-free), что на самом деле делает std::move (приведение к rvalue, а не «перемещение по щелчку»), как работает move-присваивание, какое состояние считается нормальным после перемещения ( nullptr), и какие ошибки чаще всего совершают при переносе владения (использование moved-from объекта, попытка move из const, забытый заголовок <utility>).
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush