Популярное

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

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

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

Топ запросов

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

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

Автор: Aleksey Malov

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

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

Описание:

Лекция посвящена наследованию в 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

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

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

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

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

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

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

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

array(10) { [0]=> object(stdClass)#6561 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "XrJhk3AFFNY" ["related_video_title"]=> string(164) "11. Статические данные и методы в C++. Композиция, агрегация, ассоциация, зависимость | ООП 2025" ["posted_time"]=> string(25) "3 недели назад" ["channelName"]=> string(13) "Aleksey Malov" } [1]=> object(stdClass)#6534 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "-UI2NXz0LBs" ["related_video_title"]=> string(132) "Принципы ООП, инкапсуляция, абстракция, наследование, полиморфизм, Unity, C#" ["posted_time"]=> string(19) "1 год назад" ["channelName"]=> string(16) "Sergey Kazantsev" } [2]=> object(stdClass)#6559 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "OvzACnP7h9E" ["related_video_title"]=> string(182) "Конструктор класса пример. Зачем нужен. Конструктор с параметрами. Конструктор по умолчанию. Урок#78" ["posted_time"]=> string(19) "7 лет назад" ["channelName"]=> string(11) "#SimpleCode" } [3]=> object(stdClass)#6566 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "hFcEVM0moYU" ["related_video_title"]=> string(58) "Как Путин видит окончание войны" ["posted_time"]=> string(21) "3 часа назад" ["channelName"]=> string(27) "Анатолий Шарий" } [4]=> object(stdClass)#6545 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "GdQxgjj8lbY" ["related_video_title"]=> string(147) "Разбор лекции Егора Бугаенко о настоящем ООП | Организованное программирование" ["posted_time"]=> string(23) "1 месяц назад" ["channelName"]=> string(93) "Организованное программирование | Кирилл Мокевнин" } [5]=> object(stdClass)#6563 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "-6DWwR_R4Xk" ["related_video_title"]=> string(125) "ООП на простых примерах. Объектно-ориентированное программирование" ["posted_time"]=> string(21) "3 года назад" ["channelName"]=> string(7) "Ulbi TV" } [6]=> object(stdClass)#6558 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "B1ULvYY-0Uo" ["related_video_title"]=> string(124) "Закон сохранения энергии — величайшее заблуждение физики [Veritasium]" ["posted_time"]=> string(23) "6 часов назад" ["channelName"]=> string(10) "Vert Dider" } [7]=> object(stdClass)#6568 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "YbbatForOMM" ["related_video_title"]=> string(100) "Полный Айсберг Linux: Что скрывается под поверхностью ОС?" ["posted_time"]=> string(27) "7 месяцев назад" ["channelName"]=> string(5) "ZARGO" } [8]=> object(stdClass)#6544 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "nAfyVc0rWAg" ["related_video_title"]=> string(166) "Если бы персонажи НЕ ТУПИЛИ - "Грань будущего" | Логика против временной петли и инопланетян" ["posted_time"]=> string(21) "6 дней назад" ["channelName"]=> string(10) "Кроль" } [9]=> object(stdClass)#6562 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "1hw8j6FhZiA" ["related_video_title"]=> string(107) "13. Корутины C++ 20 - часть 1 | Параллельное программирование 2025" ["posted_time"]=> string(25) "2 недели назад" ["channelName"]=> string(13) "Aleksey Malov" } }
11. Статические данные и методы в C++. Композиция, агрегация, ассоциация, зависимость | ООП 2025

11. Статические данные и методы в C++. Композиция, агрегация, ассоциация, зависимость | ООП 2025

Принципы ООП, инкапсуляция, абстракция, наследование, полиморфизм, Unity, C#

Принципы ООП, инкапсуляция, абстракция, наследование, полиморфизм, Unity, C#

Конструктор класса пример. Зачем нужен. Конструктор с параметрами. Конструктор по умолчанию. Урок#78

Конструктор класса пример. Зачем нужен. Конструктор с параметрами. Конструктор по умолчанию. Урок#78

Как Путин видит окончание войны

Как Путин видит окончание войны

Разбор лекции Егора Бугаенко о настоящем ООП  | Организованное программирование

Разбор лекции Егора Бугаенко о настоящем ООП | Организованное программирование

ООП на простых примерах. Объектно-ориентированное программирование

ООП на простых примерах. Объектно-ориентированное программирование

Закон сохранения энергии — величайшее заблуждение физики [Veritasium]

Закон сохранения энергии — величайшее заблуждение физики [Veritasium]

Полный Айсберг Linux: Что скрывается под поверхностью ОС?

Полный Айсберг Linux: Что скрывается под поверхностью ОС?

Если бы персонажи НЕ ТУПИЛИ -

Если бы персонажи НЕ ТУПИЛИ - "Грань будущего" | Логика против временной петли и инопланетян

13. Корутины C++ 20 - часть 1 | Параллельное программирование 2025

13. Корутины C++ 20 - часть 1 | Параллельное программирование 2025

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



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



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