$30 off During Our Annual Pro Sale. View Details »

Программирование – 1 курс весна 2022 – 6 занятие

Программирование – 1 курс весна 2022 – 6 занятие

ТиМПИ

March 29, 2022
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. 29 марта 2022 fvb@dscs.pro Федор Витальевич Бушмелев Введение в ООП

    (часть 3)
  2. 2/31 2/31 Модификаторы доступа

  3. 3/31 3/31 Модификаторы доступа при наследовании

  4. 4/31 4/31 Наследование Базовый класс Дочерние/производные классы Наследование – это

    свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Животные Кошки Собаки
  5. 5/31 5/31 С чем будем работать?

  6. 6/31 6/31 Создаем базовый класс 1/2 private поля дочерних классов

    становятся protected в базовом классе private protected
  7. 7/31 7/31 Создаем базовый класс 2/2

  8. 8/31 8/31 Иерархия наследования 1/2 class Cat class Dog class

    Animal class Animal
  9. 9/31 9/31 Иерархия наследования 2/2

  10. 10/31 10/31 Нужен ли по умолчанию?

  11. 11/31 11/31 Конструктор базового класса

  12. 12/31 12/31 Наследование методов

  13. 13/31 13/31 Цепочка наследования 1/2 ДО ДО ПОСЛЕ ПОСЛЕ

  14. 14/31 14/31 Цепочка наследования 2/2 class Cat class Dog class

    Animal class Animal class Life class Life
  15. 15/31 15/31 Переопределение методов Метод базового класса Переопредление метода в

    дочернем классе
  16. 16/31 16/31 Вызов метода базового класса

  17. 17/31 17/31 Загадка 1 Что выведет программа?

  18. 18/31 18/31 Виртуальный метод 1/2

  19. 19/31 19/31 Виртуальный метод 2/2 Перегружая виртуальные методы рекомендуется добавлять

    ключевое слово override
  20. 20/31 20/31 Виртуальный метод: резюме Виртуальный метод в языке С++

    — это особый тип функции, которая, при её вызове, выполняет «наиболее» дочерний метод, который существует между родительским и дочерними классами. • Если функция отмечена как виртуальная, то все соответствующие переопределения тоже считаются виртуальными. • Сигнатура виртуального метода дочернего класса должна полностью соответствовать сигнатуре виртуального метода родительского класса, иначе это просто другой метод. • Никогда не вызывайте виртуальные функции в теле конструкторов или деструкторов. • Обработка и выполнение вызова виртуального метода занимает больше времени, чем обработка и выполнение вызова обычного метода.
  21. 21/31 21/31 Абстракция Абстрактный класс - это класс, который содержат

    или наследуют без переопределения хотя бы одну чистую виртуальную функцию.
  22. 22/31 22/31 Дружественные классы и функции

  23. 23/31 23/31 Множественное наследование 1/2

  24. 24/31 24/31 Множественное наследование 2/2

  25. 25/31 25/31 Загадка 2 Что выведет следующий код?

  26. 26/31 26/31 Пример решения

  27. 27/31 27/31 Ветвление наследования 1/4 class Dog class Animal class

    Life class Home class Life
  28. 28/31 28/31 Ветвление наследования 2/4

  29. 29/31 29/31 Ветвление наследования 3/4 Опять проблемы…

  30. 30/31 30/31 Ветвление наследования 4/4

  31. 29 марта 2022 fvb@dscs.pro Федор Витальевич Бушмелев Введение в ООП

    (часть 3)