Похожие презентации:
Шаблоны. Конструкции (функции, структуры)
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)