Page cover

🔩Шаблоны функции

Шаблоны функций - позволяют определять функции, которые не зависят от конкретных типов данных. Нам не нужно писать множество перегрузок функций, шаблон сам подберет нужный тип данных

Синтаксис
template <typename T> // шаблон 
 
T sum(T a, T b) 
{
	return a + b;	
}

template - шаблон <typename T> - Это параметр типа. Он указывает, что T может представлять любой тип данных T - имя типа

один шаблон для разных типов данных
template <typename T> // шаблон

T sum(T a, T b) // функция
{ 
  return a + b;
}



int main() {

  int num1 = 5, num2 = 10; // целые
  cout << "Сумма целых чисел: " << sum(num1, num2) << endl;


  double num3 = 2.5, num4 = 3.7; // дробные
  cout << "Сумма чисел с плавающей точкой: " << sum(num3, num4) << endl;


  string str1 = "Hello", str2 = " World!"; // строки
  cout << "Сумма строк: " << sum(str1, str2) << endl;
  
}

функция sum может работать с любыми типами данных, которые мы зададим при ее вызове.


Однако если нам нужно в параметр функции отправить два разных типа данных, то следует задать разные названия типа данных в шаблоне. - В нашем случае T1 и T2.

template <typename T1, typename T2> // два разных типа данных

double sum(T1 a, T2 b)
{
	return a + b;
}



int main()
}	
	
	cout << sum(5, 2.2) << endl;
	
}

Вместо typename можно использовать class. Они буквально ничем не отличаются и эквивалентны друг другу, однако в прошлых версиях c++ использования class было обязательно.

template <class T>

Last updated