C++ Шаблонные функции

C++ Шаблонные функции

Иногда удобно создать 1 шаблон, по которому будут обрабатываться любые данные, например:
Нужно поменять местами 2 переменные, независимо от их типа (char, int, long…)
Для этого удобно создать шаблон функции:

template<typename T>
void Swap (T &a, T &b)
{
  T Temp=a;
  a=b;
  b=Temp;
}

В данном случае мы написали, что “T” является некиим шаблонным параметром, и если мы напишем:

int Val1=10, Val2=20;
Swap(Val1, Val2);

То компилятор применит сборку по шаблону, описанному нами и создаст функцию
void Swap (int &a, int  &b){…}

если же мы изменим данные и напишем:

float Val1=10.1, Val2=20.2;
Swap(Val1, Val2);

То компилятор применит сборку по шаблону, описанному нами и создаст функцию
void Swap (float &a, float  &b){…}

Важно, типы данных у 2-х аргументов в данном случае должны совпадать, т.е.
если же мы изменим данные и напишем:

float Val1=10;
int Val2=20;
Swap(Val1, Val2);

То компилятор не сможет выполнить сборку по шаблону!!! void Swap (float &a, int  &b){…}, так как типы операндов разные (float и int)

Leave a Reply

Your email address will not be published. Required fields are marked *