Си++: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 578:
 
=== Шаблоны функций ===
 
Бывает, что нет смысла городить «целый класс», и шаблона одной-единственной функции вам вполне достаточно. Например, напишем функцию «<tt>swap</tt>», которая меняет местами значения переданных аргументов.
 
Вот как она выглядит на Си++:
template <typename T>
void swap (T &left, T &right) {
T temp = left;
left = right;
right = temp;
}
 
Аналогично шаблонам классов, это — шаблон функции. (Часто говорят — «шаблонный класс», «шаблонная фукнция».) ''Экземпляр'' этой функции, обменивающий местами два значения типа «<tt>int</tt>», называется «<tt>swap &lt;int&gt;</tt>».
 
Однако, в отличие от классов, при вызове функций обычно предоставляют ''компилятору'' право выяснить параметры шаблона. Вот так:
void main () {
int a = 3, b = 5;
swap (a, b);
/* теперь a = 5, b = 3 */
}
 
=== Параметры шаблонов ===