Информатика. Общая информатика. Основы языка C++. Мамонова Т.Е. - 175 стр.

UptoLike

Составители: 

//шаблон функции, которая находит абсолютное
значение числа любого типа
template<class type>//type имя параметризируе-
мого типа
type abs(type x)
{
if(x<0)return -x;
else return x;
}
Шаблон служит для автоматического формирования конкретных
описаний функций по тем вызовам, которые компилятор обнаруживает
в программе. Например, если в программе вызов функции осуще-
ствляется как abs(-1.5), то компилятор сформирует определение функ-
ции double abs(double x){. . . }.
Пример 85
//шаблон функции, которая меняет местами две
переменных
template <class T>//T имя параметризируемого
типа
void change(T*x,T*y)
{T z=*x;*x=*y;*y=z;}
Вызов этой функции может быть :
long k=10,l=5;
change(&k,&l);
Компилятор сформирует определение:
void change(long*x,long*y){ long z=*x;*x=*y;*y=z;}
Пример 86
#include<iostream.h>
template<class Data>
Data&rmax(int n,Data a[])
{
int im=0;
for(int i=0;i<n;i++)
if(a[im]<a[im])im=i;
return d[im];//возвращает ссылку на максимальный
элемент в массиве
}
void main()
{int n=5;
int x[]={10,20,30,15};
175