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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Этапы сборки: preprocessing → compile → link

    C++ SELF
    30 уровень,0 лекция
    Разбираем, что на самом деле делает кнопка «Run» в IDE: как препроцессор разворачивает #include и макросы ( #define, #if), как компилятор превращает каждый .cpp в объектный файл ( .o/ .obj), и как линковщик склеивает всё в исполняемый файл, находя (или не находя) определения символов. По пути вводим понятие translation unit и связываем это с типичными ошибками сборки и ODR.
    Открыта
  • Ошибка компиляции vs ошибка линковки

    C++ SELF
    30 уровень,1 лекция
    Разбираем, чем отличается compile error от link error в C++: на каком этапе возникает проблема, почему компилятору достаточно объявления, а линковщик требует определение, и как за 10 секунд классифицировать лог по словам expected, was not declared, undefined reference и multiple definition. На примере мини‑проекта TaskBox показываем типовые сценарии: забытый ;, пропущенный #include, неучаствующий в сборке .cpp и разъехавшиеся сигнатуры.
    Открыта
  • Warnings: почему это будущие баги

    C++ SELF
    30 уровень,2 лекция
    Разбираем, почему предупреждения компилятора в C++ — это не «шум», а ранние сигналы будущих ошибок: неочевидные намерения, риск на границах типов (signed/unsigned), неявные преобразования с потерей данных, подозрительные условия ( = вместо ==), и игнорирование важного результата через [[nodiscard]]. На живом примере TodoLite учимся читать warning’и без паники и чинить их так, чтобы намерение кода было выражено явно.
    Открыта
  • Политика предупреждений: “warnings as errors”

    C++ SELF
    30 уровень,3 лекция
    Разбираем, почему предупреждения компилятора в C++ стоит воспринимать как ранний сигнал проблем, и как работает подход warnings as errors: что делать с unused-переменными и параметрами (включая приём static_cast < void >), как избегать ловушек signed/ unsigned в циклах через std::size_t, и почему неявные преобразования (например, double → int) лучше делать осознанно. В конце — пример на MiniTracker, mermaid-схема сборки и разбор типичных ошибок внедрения строгой политики.
    Открыта
  • Мини‑toolbox диагностики: печать, assert, лог‑сообщения

    C++ SELF
    30 уровень,4 лекция
    Мини‑набор приёмов для быстрой отладки консольных программ на C++: разделяем «правильный вывод» и диагностику через std::cout/ std::cerr, проверяем внутренние контракты с помощью assert, наводим порядок в сообщениях через функции log_debug/ log_error и флажок ENABLE_DEBUG_LOGS. Всё показывается на учебном приложении MiniTasks и дополняется коротким циклом «гипотеза → проверка → правка».
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush