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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • struct vs class: инкапсуляция и доступ по умолчанию

    C++ SELF
    48 уровень,0 лекция
    Разбираем ключевую (и единственную принципиальную) разницу между struct и class в C++: доступ по умолчанию ( public vs private) и то, как это влияет на инкапсуляцию. На примерах Account и Task показываем, зачем прятать состояние за методами, как формировать «контракт» типа, и какие ошибки чаще всего встречаются у новичков (забытый public :, вера в «магическую разницу» и пропущенная ; после }).
    Открыта
  • `private`/`public`: минимальный интерфейс

    C++ SELF
    48 уровень,1 лекция
    Разбираем, зачем в C++ нужны секции public/ private, как инкапсуляция делает объект «неубиваемым», и почему лучше держать public-API маленьким. На примере мини‑проекта TaskTracker покажем, как прятать состояние (например, std::vector) за осмысленными методами ( rename(), mark_done()), не «протекать» наружу через ссылки T &, и держать проверки внутри класса.
    Открыта
  • Геттеры/сеттеры: когда нужны, а когда вредят дизайну

    C++ SELF
    48 уровень,2 лекция
    Разбираем, почему « getName ()/ setName () на каждое поле» в C++ часто превращает API в шум, как геттеры могут протечь через const T & и особенно T &, и как вместо сеттеров проектировать методы-операции ( rename, mark_done, reopen) для поддержки инвариантов на примере мини‑приложения TaskTracker.
    Открыта
  • Список инициализации: корректность, а не стиль

    C++ SELF
    48 уровень,3 лекция
    Разбираем, почему список инициализации в конструкторах C++ — это не «красивый синтаксис», а часть корректной модели создания объекта: поля и базовые части инициализируются до тела конструктора. Сравним инициализацию и присваивание, увидим обязательные случаи ( const-поля и ссылки), научимся поддерживать инварианты «с рождения», а также аккуратно комбинировать список инициализации с default member initializer. В конце — памятка и типичные ошибки.
    Открыта
  • explicit — защита от неявных преобразований в API

    C++ SELF
    48 уровень,4 лекция
    Разбираем, почему одноаргументные конструкторы в C++ могут незаметно создавать временные объекты и приводить к «странным» вызовам функций, как ключевое слово explicit запрещает неявные преобразования, чем отличаются copy-initialization и direct/list-initialization, почему параметры по умолчанию превращают конструктор в «почти одноаргументный», и как применять explicit в сильных типах вроде TaskId и Minutes для защиты смысла вашего API.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush