КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тело функции
Тип_ результата имя_функции (параметры) Шаблоны функций
При написании программы на С + + может возникнуть необходимость создать несколько функций, которые выполняют одни и те же действия, но с данными разных типов. Например, нужно создать функции, определяющие максимальные элементы для массивов int и double. Или выполнять сортировку элементов массивов разных типов и т.д. В этих случаях удобно написать шаблон функции, по которому компилятор самостоятельно создает функцию для каждого из типов данных. При определении шаблона функции будут использоваться формальные типы данных, а при обращении к шаблону будут указываться соответствующие фактические типы данных. Синтаксис шаблона функции имеет вид: template< список_формальных_типов_шаблона> { } За ключевым словом template следует один или несколько аргументов, заключенных в угловые скобки или отделенные друг от друга запятыми. Каждый аргумент состоит из ключевого слова class и идентификатора, обозначающего формальный тип. Затем следует определение функции. Оно похоже на обычное определение функции, за исключением того, что один или несколько параметров используют типы, специфицированные в списке аргументов шаблона. Рассмотрим примеры использования шаблонов при создании функции нахождения суммы элементов одномерных массивов, а также их сортировки для разных типов данных. Пример 1 # include < iostream. h> template < class T > T sum (T x [ ], int n) { T s = Ø; // s – переменная типа class T for (int i = Ø; i < n; i ++) s+ = x [ i ]; return s; } / * Определен шаблон функции для вычисления суммы элементов одномерного массива типа class T * / void main () { int m [ ] = {1,2,3,4,5,6,7,8,9,10}; int sum_int = sum (m,10); /*Компилятор создает по шаблону функцию sum для целого типа int */ cout << ” sum_int = “ <<sum_int << ‘ \ n ’; float x [ ] = { -1, Ø, 2.5, -Ø.1, Ø.15}; float sum_float = s (x, 5); /*Компилятор создает по шаблону функцию sum для типа float */ cout <<”sum_float =” << sum_float << ‘ \ n ’; } Пример 2 Сортировка элементов одномерного массива методом «пузырька». # include < iostream. h > template < class T > void sort (T x [ ], int n) { T v; // v – переменная типа class T for (int k = n-1; k>Ø; i + +) for(int i=0;i<k;i++ ) if (x [i + 1] < x [ i ]) { v = x [ i + 1]; x [ i+1] = x [ i ]; x [ i ] = v; } } /* Определен шаблон функции сортировки элементов одномерного массива */ void main () { int m [1Ø] = {1Ø, 1, 9, 2, 8, 3, 7, 4, 6, 5}; sort (m, 1Ø); /* Компилятор создает по шаблону функцию sort для целого типа int. После сортировки массив m имеет вид: for (int i = Ø; i < 1Ø; i + +) cout << “ m [“ << i << “] = “ << m [ i ] << ‘ \ n ‘; float x [ 5 ] = {5, -1, 4, -2, 3}; sort (x, 5); /* Компилятор создает по шаблону функцию sort для типа float. После сортировки массив ч имеет вид: */ for (i = Ø; i < 5; i + +) count << “ x [“ << i << “] = “ << x [ i ] << ‘ \ n ‘; } Заключение
На этом заканчивается относительно краткое изложение алгоритмического языка С + +. Как уже было сказано во введении, отобранный материал позволяет получить основные сведения об этом языке и самостоятельно программировать на нем. Дополнительные сведения, которые можно получить из приведенных литературных источников или из Internet, позволят повысить эффективность ваших программ за счет использования тех возможностей языка С + +, которые не освещены в лекциях.
Дата добавления: 2015-06-27; Просмотров: 303; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |