Void main(). cout<<"a = "<<a<<" b = "<<b<<"\n";
{
int a, b;
a = 5; b = 10;
double x, y;
x = 5.8; y = 10.27;
cout<<"a = "<<a<<" b = "<<b<<"\n";
cout<<"x = "<<x<<" y = "<<y<<"\n";
swap1(a, b); //обмін цілих чисел
swap1(x, y); //обмін дійсних чисел
cout<<"a = "<<a<<" b = "<<b<<"\n";
cout<<"x = "<<x<<" y = "<<y<<"\n";
}
Результат виконання програми наступний:
a = 5 b = 10
x = 5.8 y = 10.27
a = 10 b = 5
x = 10.27 y = 5.8
Ключове слово template використовується для визначення родової функції. Рядок:
template <class A> void swap1(A&x, A&y)
повідомляє компілятору дві речі: по-перше, створюється шаблон, та по-друге, починається визначення родової функції. Тут A – родовий тип даних. Після рядка з ключовим словом template функція swap() оголошується з типом даних A значень, що обмінюються. У функції main() функція swap1() викликається з двома різними типами даних: цілими та дійсними. Оскільки функція swap1() – родова функція, компілятор автоматично створює дві її версії: одну для обміну цілих значень, іншу для обміну дійсних значень.
За допомогою інструкції template можна визначити більше одного родового типу даних. Наприклад, у даній програмі створюється родова функція, в якій є два родові типи даних:
#include <iostream>
using namespace std;
//Функція-шаблон
template <class type1, class type2>
Дата добавления: 2014-12-26; просмотров: 619;