1.12M
Категория: ПрограммированиеПрограммирование

Шаблоны. Конструкции (функции, структуры)

1.

Шаблоны

2.

Шаблоны
Шаблоны позволяют определить конструкции (функции, структуры),
в которых на момент написания кода точно не известно, с какими по
типу параметрами оно именно будет работать. Иными словами,
шаблоны позволяют определить универсальные конструкции, которые
не зависят от определенного типа.

3.

Шаблоны
Ключевым словом для объявления шаблона – template
Ключевое слово
typename/class
для
объявления
шаблонного
типа

Шаблонный тип указывается после слово template в угловых
скобках создаём идентификатор после слов typename/class.
Если шаблонных типов нужно несколько, то они перечисляются
через запятую.

4.

Шаблоны функций
Шаблоны функций (function template) позволяют определять
функции, которые не зависят от конкретных типов.
Рассмотрим на примере функции swapMy()
Прототип:
Вызов функции:
Определение:

5.

Шаблоны функций несколькими
неизвестными параметрами
Шаблоны функций (function template) позволяют определять
функции, которые не зависят от конкретных типов.
Рассмотрим на примере функции f() для вывода двух переменных
Прототип:
Определение:
Вызов функции:

6.

Явный и неявный вызов реализации
функции для определенного типа
На примерах выше было представлено 2 способа вызова
функций:
Явным указанием типа:
Неявным указанием типа:
*с каким типом будет работать функция определяется
по передаваемым параметрам

7.

Шаблоны структур
Для объявления шаблонных структур используется всё по
аналогии, только при объявлении переменной данного типа
необходимо явным образом указывать под какой тип данных
создавать структурную переменную.

8.

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

9.

Спецификация – реализация
частного случая для шаблона
Структура:
Шаблонная функция:
Спецификация шаблона под
тип структурный тип:
Прототип функции:

10.

Дополнительный материал
Дополнительный материал можете узнать на Metanit.com в
разделе С++: шаблоны.
C++ | Шаблоны функций (metanit.com)
English     Русский Правила