Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

CCPP / CPP / Программирование на языке Си++. Модуль №7

.pdf
Скачиваний:
58
Добавлен:
23.03.2016
Размер:
287.26 Кб
Скачать

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

на языке Си++

1

Модуль 7.

ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ

Определение, специализация и использование шаблонов Перегрузка функций-шаблонов

2

Модуль 7. ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ

Назначение и использование шаблонов функций (начало)

Шаблоны функций (шаблоны семейства функций) — удобный параметрический механизм автоматического (без явного участия программиста) создания определений перегруженных функций

Параметрами шаблонов функций являются (могут являться) типы возвращаемых функциями значений и принимаемых ими на вход формальных параметров. Количество и взаимное расположение формальных параметров таких функций параметризации не подлежит

Определение шаблона семейства функций (здесь угловые скобки <> красного цвета— часть грамматики языка)

template <список параметров шаблона> <заголовок функции> { [<тело функции>] };

Параметры шаблона семейства функций могут использоваться в спецификации формальных параметров и типа возвращаемого значения внутри заголовка функции, а также в определениях локальных объектов

в теле параметризованной функции

3

 

Модуль 7. ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ

Назначение и использование шаблонов функций (окончание)

Описание шаблона семейства функций (здесь угловые скобки <> красного цвета— часть грамматики языка)

template <список параметров шаблона> <заголовок функции>;

Параметры шаблонов функций языка Си++

демонстрируют следующие свойства:

параметры шаблонов функций имеют уникальные в пределах шаблона идентификаторы (имена);

список параметров не может быть пуст;

каждый параметр начинается словом class (или typename)

каждый параметр должен быть использован в спецификации формальных параметров функции, а не только как тип возвращаемого значения или локального объекта в составе параметризованной функции

отдельные параметры шаблона функций и возвращаемое значение могут быть не параметризованными по описанным правилам

4

Модуль 7. ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ

Назначение и использование шаблонов классов

Шаблоны семейства классов автоматизируют построение

классов и имеют следующий формат (здесь угловые скобки <> красного цвета — часть грамматики языка):

template <список параметров шаблона> <определение класса>;

Производимое программистом внутреннее определение компонентных функций шаблона классов ничем не отличается от определения традиционных методов классов. Внешнее же определение компонентных функций осуществляется в соответствии со следующим форматом:

template <список параметров шаблона>

<имя шаблона класса> <список формальных параметров шаблона>::<имя функции> (<список формальных параметров>);

Определение объекта класса по соответствующему шаблону

<имя шаблона класса> <список фактических параметров шаблона> <идентификатор> (<инициализирующее выражение>);

5

Список литературы

[КР92] Керниган Б., Ритчи Д. Язык программирования Си / Пер. с англ. — М.: Финансы и статистика, 1992. — 272 с.

[КР06] Керниган Б., Ритчи Д. Язык программирования C / Пер. с англ. — М.:

Вильямс, 2006. — 304 с.

[ЛЛ01] Липпман С., Лажойе Ж. Язык программирования C++. Вводный курс.

— СПб.: Невский диалект, 2001. — 1104 с.

[Под03] Подбельский В.В. Язык Си++: Учеб. пособие. — 5-е изд. — М.: Финансы и статистика, 2003. – 560 с., ил.

[Под04] Подбельский В.В., Фомин С.С. Программирование на языке Си. – 2-е доп. изд. – М.: Финансы и статистика, 2004. – 600 с.

[Стр08] Страуструп Б. Язык программирования С++. Специальное издание.

— СПб.: Невский диалект, 2008. — 1104 с.

6