ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

12. Наследование и полиморфизм | ООП 2025

Автор: Aleksey Malov

Загружено: 2025-06-09

Просмотров: 264

Описание: Лекция посвящена наследованию в C++ — одному из ключевых принципов объектно-ориентированного программирования. Разбираются основы иерархии классов, правила публичного наследования, порядок вызова конструкторов, использование виртуальных методов и деструкторов. Особое внимание уделено полиморфизму, приведению типов и практическим рекомендациям по проектированию иерархий классов.

Примеры кода и задачи можно найти в моём github-аккаунте: https://github.com/alexey-malov/oop

Чтобы оставаться на связи в условиях блокировки Youtube в России подписывайтесь на мой Telegram-канал https://t.me/vivid_coding

*1. Наследование: суть и иерархия*

Наследование позволяет создавать новые классы на основе существующих, повторно используя код.
Классы-наследники расширяют или переопределяют поведение базовых.
Иерархия оформляется как дерево: пример — `Shape → Circle`.

*2. Публичное наследование*

При публичном наследовании: `public` и `protected` сохраняют модификаторы доступа, `private` остаётся недоступным.
Наследник — частный случай базового класса.

*3. Конструкторы и инициализация*

Сначала вызывается конструктор базового класса.
Для передачи параметров родительскому конструктору используется список инициализации.

*4. Расширение и `using`*

Наследники могут добавлять методы и поля, а также наследовать конструкторы с помощью `using`.

*5. Полиморфизм и приведение типов*

Приведение вверх позволяет использовать наследника как родителя.
Полиморфизм даёт возможность вызывать разные реализации через единый интерфейс.

*6. Виртуальные методы*

Объявляются с `virtual`, переопределяются с `override`.
Механизм основан на таблице виртуальных функций (vtable).
Правило: если метод виртуальный — он остаётся таким во всех наследниках.

*7. Деструкторы*

Базовый класс должен иметь **виртуальный деструктор**, если предполагается полиморфное удаление.
Иначе — риск утечек и неопределённого поведения.

*8. Модификатор `protected`*

Доступен классу и его наследникам.
Лучше использовать `protected` методы, чем напрямую `protected` поля.

*9. Защищённые конструкторы*

Используются для ограничения создания экземпляров базового класса.

*10. Рекомендации*

Используйте `virtual` и `override` осознанно.
Не делайте всё виртуальным по умолчанию.
Инкапсуляцию лучше сохранять через `private` поля и `protected` интерфейс.


Тайм-коды:
0:00 Отношение наследования
10:05 Передача параметров конструктору родителя
16:04 Приведение типа в вверх по иерархии классов
21:43 Виртуальные методы, полиморфизм
33:46 Защищённые данные и методы класса
38:56 Применение защищённого конструктора
40:09 Работа деструкторов при наследовании
58:13 Финальные классы и методы

В заставке использована композиция "Папа может в Си" музыкального коллектива "Научно-технический рэп" (https://vk.com/nii_rap)
Исходный код шейдера из финальной заставки: https://www.shadertoy.com/view/Mcjfzc

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
12. Наследование  и полиморфизм | ООП 2025

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]