Все Лекции
.pdf
СПАСИБО ЗА ВНИМАНИЕ!
38
Информационные технологии
и программирование
Лекция 9. Стили и методы программирования
Стили и методы программирования
•Функциональное программирование
•Объектно-ориентированное программирование
•Обобщенное программирование
•Автоматное программирование
2
Обобщенное программирование
•Необходимая часть в арсенале практически всех современных ЯП: обобщенные структуры данных и обобщенные алгоритмы - ценный и полезный механизм разработки.
•Что параметризовать: структуры данных или алгоритмы? (как правило, и то, и другое)
•Чем параметризовать?- только типами (C#, Java, Swift) или всем, чем угодно? (Ada, C++)
•Какие ограничения накладывать на параметры? Никаких вообще («старый» C++) или жесткие и эффективно проверяемые ограничения (С++20, С#, Eiffel, Ada)?
3
Обобщенное программирование. Идея
4
Обобщенное программирование. Идея
•Как обобщить эту функцию, чтобы она работала не только для целых, но и для других предопределенных типов
(float, double, и т.п.)?
•Как обобщить эту функцию, чтобы она работала для пользовательских (классовых) типов?
int Max ( int a, int b )
{
return a>b ? a : b;
}
5
Обобщенное программирование. Идея
6
Обобщенное программирование. Идея
7
Настройка шаблона
•Настройка шаблона выполняется
автоматически компилятором
•Компилятор анализирует типы параметров вызова и подставляет их вместо формальных типов шаблона
•Настройка шаблона для конкретного типа производится
только один раз
•Настройка шаблона производится для каждого множества типов
8
Настройка шаблона
9
