определение
функция по модулюСовет — это особая функция,Может вызываться с разными типами, для функций с одной и той же функцией код повторять не нужно, а шаблон функции очень похож на обычную функцию, разница в томТипы могут быть параметризованы
Форма определения шаблона функции****
template < Тип таблицы формальных параметров >
Формальные параметры типа имеют вид:
typename T1 , typename Т2, ..., typename Tn
или class T1 , class Т2, ..., class Tn
шаблон функции черезtemplateиtypenameДва ключевых слова для определения следующим образом:
//template сообщает компилятору C++, что я собираюсь начать универсальное программирование Не сообщайте об ошибке, когда видите T
template <typename T>
void myswap(T &a, T &b)
{
T c = 0;
c = a;
a = b;
b = c;
coutendl;
}
Ключевое слово template используется для объявления начала универсального программирования, а ключевое слово typename используется для объявления универсального типа.
перечислить
Существует две формы вызова шаблона функции:
1. Отобразить вызов, например: myswap
2. Автоматический вывод типа данных, например: myswap(a, b);
Пример:
#include <iostream>
using namespace std;
template <typename T>
void myswap(T &a, T &b)
{
T c = 0;
c = a;
a = b;
b = c;
coutendl;
}
int main()
{
int x = 10;
int y = 20;
myswap
myswap(x, y); //2 автоматический вывод типа
printf("x:%d y:%d \n", x, y);
}
результат операции: