ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
При определении шаблона прототип функции предваряется
ключевым словом template и указанием в угловых скобках списка имен
обобщенных типов данных, применяемых в данном шаблоне.
Обязательным условием является применение ключевого слова class
перед каждым именем типа.
Создадим шаблон функции обмена значениями переменных
различных типов данных:
// шаблон функции обмена значениями
// двух переменных обобщенного типа Т
template <class T> void Swap(T& a, T& b)
{ T t = a; a = b; b = t; }
Тип фактических параметров, указываемых при вызове функции,
определяет конкретную функцию, сгенерированную для этого типа на
основе шаблона. Например,
int a = 10, b = 30;
// генерация и вызов функции обмена значений
// переменных целого типа
Swap(a, b);
double x = 100.5, y = 30.2;
// генерация и вызов функции обмена значений
// переменных вещественного типа
Swap(x, y);
char * str1="Первая строка", *str2 = "Вторая строка";
// генерация и вызов функции обмена двух символьных строк
Swap(str1, str2);
При вызове функции можно явно указать типы, подставляемые
вместо обобщенных. Эти типы указываются в угловых скобках "<>"
после имени функции.
int a = 10, b = 30;
// генерация и вызов функции обмена значений
// переменных целого типа
Swap<int>(a, b);
double x = 100.5, y = 30.2;
// генерация и вызов функции обмена значений
// переменных вещественного типа
Swap<double>(x, y);
23
Объектно-ориентированное программирование на С++
При определении шаблона прототип функции предваряется
ключевым словом template и указанием в угловых скобках списка имен
обобщенных типов данных, применяемых в данном шаблоне.
Обязательным условием является применение ключевого слова class
перед каждым именем типа.
Создадим шаблон функции обмена значениями переменных
различных типов данных:
// шаблон функции обмена значениями
// двух переменных обобщенного типа Т
template void Swap(T& a, T& b)
{ T t = a; a = b; b = t; }
Тип фактических параметров, указываемых при вызове функции,
определяет конкретную функцию, сгенерированную для этого типа на
основе шаблона. Например,
int a = 10, b = 30;
// генерация и вызов функции обмена значений
// переменных целого типа
Swap(a, b);
double x = 100.5, y = 30.2;
// генерация и вызов функции обмена значений
// переменных вещественного типа
Swap(x, y);
char * str1="Первая строка", *str2 = "Вторая строка";
// генерация и вызов функции обмена двух символьных строк
Swap(str1, str2);
При вызове функции можно явно указать типы, подставляемые
вместо обобщенных. Эти типы указываются в угловых скобках "<>"
после имени функции.
int a = 10, b = 30;
// генерация и вызов функции обмена значений
// переменных целого типа
Swap(a, b);
double x = 100.5, y = 30.2;
// генерация и вызов функции обмена значений
// переменных вещественного типа
Swap(x, y);
23
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »
