Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_1-я_частьООП.doc
Скачиваний:
37
Добавлен:
24.11.2018
Размер:
114.69 Кб
Скачать

Переопределение шаблонов функций

Каждая версия функции, генерируемая с помощью шаблона, содержит одинаковый базовый код. Единственным изменяемым свойством функции будут значение параметра (или параметров) типа. Однако для отдельного параметра (или параметров) типа можно обеспечить специальную обработку. Для этого определяется обычная функция языка С++ с тем же именем, что и шаблон функции, но использующая уже имеющиеся типы данных, а не параметры типов. Обычная функция переопределяет шаблон. Т.е., если компилятор обнаруживает, что типы переданных параметров соответствуют спецификации обычной функции, то он вызовет ее, а не создаст функцию по шаблону.

специальный символ «*». Это указатель количества. Запись B* означает любое количество слов типа B (слов, выводимых из символа B), либо пустое слово. Другими словами, символ «*» означает 0, 1, 2,... раз. Есть также специальные символы + и ?:

* -- 0,1, ..., раз.

+ -- 1,2, ..., раз (то есть, любое число раз, но по крайней мере один раз).

? -- 0 или 1 раз (то есть либо есть, либо нет).

53