Реферат Курсовая Конспект
ЛАБОРАТОРНАЯ РАБОТА N 8 - раздел Программирование, Программирование алгоритмов сортировки массивов Шаблоны Функций 1.перегрузка И Шаблоны Функций ...
|
Шаблоны функций
1.Перегрузка и шаблоны функций
В одной программе может быть размещено несколько функций с одним и тем же именем, если списки формальных параметров у них различны. Требование уникальности, таким образом, предъявляется к расширенному имени функции, состоящему из собственно имени функции и списка формальных параметров.
Для описания семейства функций, реализующих аналогичные алгоритмы, можно воспользоваться шаблоном функции в соответствии со следующим синтаксисом:
template <<список формальных параметров шаблона>><возвращаемое значение><имя функции>(<список формальных параметров функции>)
{<тело функции>}
Список формальных параметров шаблона содержит формальные параметры типа, разделенные запятыми. Формальный параметр может состоять из ключевого слова class и идентификатора типа.
Пример описания шаблона
template <class T> min(T t1,T t2)
{if(t1,t2) return t1; else return t2;}
Конкретная функция генерируется из шаблона компилятором при обработке вызова функции с конкретными фактическими параметрами.
Чтобы уточнить шаблон для особых типов параметров функции, можно определить специализированные шаблонные функции. Так, в дополнение к вышеприведенному примеру:
//специализированная версия min():
char *min(char*t1,char*t2)
{if(strcmp(t1,t2)<0) return t1; else return t2;}
В функции main при первом вызове min используется ее специализированная версия, а при втором – версия, сгенерированная по шаблону для данных типа float:
void main()
{ char *p=min(“abc”,”123”);
float a=min(1.2,3.4);
}
2.Задание на лабораторную работу
Написать функцию-шаблон для одной из операций над одномерным массивом элементов простых типов, предусмотрев специализированную реализацию этой же операции для массива структур. Операцию над массивом выбрать в соответствии с вариантом задания.
– Конец работы –
Эта тема принадлежит разделу:
Государственное образовательное учреждение... Высшего профессионального образования... Санкт Петербургский государственный университет...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ЛАБОРАТОРНАЯ РАБОТА N 8
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов