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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Делегирующие конструкторы: убираем дублирование

    C++ SELF
    49 уровень,0 лекция
    Разбираем делегирующие конструкторы в C++: как убрать копипаст между перегрузками, выбрать «главный» конструктор и направлять в него остальные через список инициализации ( : ClassName (... )). Понимаем порядок выполнения (сначала делегируемый конструктор, потом тело обёртки), закрепляем на примерах Rectangle и Task, а также обсуждаем ограничения и типичные ошибки (цикл делегирования, попытка «доинициализировать» поля и слоёный пирог из побочных эффектов).
    Открыта
  • static‑члены класса: общие настройки и генерация id

    C++ SELF
    49 уровень,1 лекция
    Разбираем, что такое static-поля и static-методы в C++: чем они отличаются от обычных членов, почему у static-метода нет this, где «живёт» static-поле и почему его нужно один раз определить (и как выглядит ошибка линковки). На практике строим общую конфигурацию приложения ( AppConfig) и генератор уникальных идентификаторов ( next_id_), а в конце фиксируем типичные ошибки и анти-паттерн «скрытая глобальщина».
    Открыта
  • Когда перегрузка операторов оправдана

    C++ SELF
    49 уровень,2 лекция
    Разбираем, почему перегруженный оператор в C++ — это не «магия», а функция, которая становится частью публичного API типа: где уместны operator==, operator<< и operator<=>, как отличать «тип-значение» от сущности с несколькими смыслами, почему важны предсказуемость и отсутствие побочных эффектов, и как принять решение с помощью чек-листа и блок-схемы. На примере Task и функции printTask() показываем мотивацию: читаемость важнее «красоты ради красоты».
    Открыта
  • operator << для std::ostream — вывод объектов

    C++ SELF
    49 уровень,3 лекция
    Разбираем, как в C++ правильно перегружать operator << для потоков вывода: почему сигнатура должна быть std::ostream& operator <<( std::ostream&, const T&), зачем возвращать поток по ссылке для цепочек вида std::cout << a << b, как печатать через публичный интерфейс или через friend, и как получать строку через std::ostringstream. В конце — список типичных ошибок и анти-паттернов.
    Открыта
  • operator== и контракт равенства — что значит «равны»

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