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

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

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

ТиМПИ

May 03, 2022
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. 03 мая 2022 fvb@dscs.pro Федор Витальевич Бушмелев Шаблоны и обобщённое

    программирование
  2. 2/16 2/16 А в чём проблема? Вы Заказчик Заказчик: —

    Хочу сумматор! Вы: — Не вопрос! Всё будет!
  3. 3/16 3/16 Сумматор целых чисел Что может быть проще? Заказчик

    Ой! Всё супер! А можно еще и для вещественных чисел?
  4. 4/16 4/16 Сумматоры целых и вещестенных чисел Всё еще не

    проблема…
  5. 5/16 5/16 Сумматоры еще и … Знаете, мне бы еще

    double с int сложить!
  6. 6/16 6/16 Проблемы? Знаете, мне бы еще doble с int

    сложить! • Значительные временные затраты • Высокие темпы роста кода • Работа с требованиями заказчика • Ведение документации
  7. 7/16 7/16 Решение: используем шаблон функции Ключевое слово template <>

  8. 8/16 8/16 Решение: шаблон для примера 3 Вопрос: какое ключевое

    слово для типа использовать? Typename или class?
  9. 9/16 9/16 Шаблон класса 1/2

  10. 10/16 10/16 Шаблон класса 2/2

  11. 11/16 11/16 Специализация шаблона класса 1/2

  12. 12/16 12/16 Специализация шаблона класса 2/2

  13. 13/16 13/16 Наследование шаблона класса 1/2

  14. 14/16 14/16 Наследование шаблона класса 2/2

  15. 15/16 15/16 Итоги • Так что же такое «Обобщенное программирование»?

    Обобщённое программирование (generic programming) — парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание. • Есть ли отличие между шаблонами (template) и дженериками? Шаблоны (templates) в С++ — частный случай обобщённых типов (generic types). Приводит к увеличению объема программы, т.к. при использовании создает полные экземпляры структур для указанного типа данных, в т.ч. и пользовательского.
  16. 03 мая 2022 fvb@dscs.pro Федор Витальевич Бушмелев Шаблоны и обобщённое

    программирование