ЛАБОРАТОРНАЯ РАБОТА № 11.
ШАБЛОНЫ, ШАБЛОННЫЕ КЛАССЫ И ФУНКЦИИ
Ключевые слова: шаблон, template, класс-шаблон, вектор, конкре-
тизация, специализация.
Цель: Познакомится с понятием шаблон, функции-шаблоны, шаб-
лоны классов и примерами использования.
Механизм шаблонов предполагает решение, позволяющее отде-
лить общий алгоритм от его реализации применительно к конкретным
типам данных. Можно составить текст программы сейчас, а используе-
мые типы уточнять позднее. Это возможно, так как используемый тип
данных является в этом случае параметром. Шаблоны сочетают в себе
преимущества однократной подготовки фрагментов программы (анало-
гично макрокомандам) и контроль типов, присущий переопределяемым
функциям.
В языке С++ имеются два типа шаблонов – шаблоны функций
и шаблоны классов.
Шаблонные функции предназначены для записи обобщенных
функций, которые могут работать с данными различного типа, например,
функции поиска минимума двух чисел.
// Описание шаблона функции
template
X min (X a, X b)
{
return a
}
Ключевое слово class в описании шаблона означает тип, иденти-
фикатор в списке параметров шаблона X означает имя любого типа.
В описании заголовка функции этот же идентификатор означает тип воз-
вращаемого функцией значения и типы параметров функции.
// Использование шаблона функции
int m = min (1, 2);
// Экземпляр шаблона функции породит, сгенерированный компилятором
int min (int a, int b)
{
return a
}
58
В списке параметров шаблона слово class может также относится
к обычному типу данных. Таким образом, список параметров шаблона
просто означает, что Т представляет собой тип, который будет
задан позднее. Так как Т является параметром, обозначающим тип, шаб-
лоны иногда называют параметризованными типами.
Достарыңызбен бөлісу: |