рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ЛАБОРАТОРНАЯ РАБОТА N 8

ЛАБОРАТОРНАЯ РАБОТА N 8 - раздел Программирование, ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ Шаблоны Функций   1.перегрузка И Шаблоны Функций ...

Шаблоны функций

 

1.Перегрузка и шаблоны функций

 

В одной программе может быть размещено несколько функций с одним и тем же именем, если списки формальных параметров у них различны. Требование уникальности, таким образом, предъявляется к расширенному имени функции, состоящему из собственно имени функции и списка формальных параметров.

Для описания семейства функций, реализующих аналогичные алгоритмы, можно воспользоваться шаблоном функции в соответствии со следующим синтаксисом:

template <<список формальных параметров шаблона>><возвращаемое значение><имя функции>(<список формальных параметров функции>)

{<тело функции>}

Список формальных параметров шаблона содержит формальные параметры типа, разделенные запятыми. Формальный параметр может состоять из ключевого слова class и идентификатора типа.

Пример описания шаблона

template <class T> min(T t1,T t2)

{if(t1,t2) return t1; else return t2;}

Конкретная функция генерируется из шаблона компилятором при обработке вызова функции с конкретными фактическими параметрами.

Чтобы уточнить шаблон для особых типов параметров функции, можно определить специализированные шаблонные функции. Так, в дополнение к вышеприведенному примеру:

//специализированная версия min():

char *min(char*t1,char*t2)

{if(strcmp(t1,t2)<0) return t1; else return t2;}

В функции main при первом вызове min используется ее специализированная версия, а при втором – версия, сгенерированная по шаблону для данных типа float:

void main()

{ char *p=min(“abc”,”123”);

float a=min(1.2,3.4);

}

2.Задание на лабораторную работу

 

Написать функцию-шаблон для одной из операций над одномерным массивом элементов простых типов, предусмотрев специализированную реализацию этой же операции для массива структур. Операцию над массивом выбрать в соответствии с вариантом задания.

  1. Определение количества элементов, равных первому
  2. Обмен значениями двух элементов, заданных номерами
  3. Определение номера элемента, заданного значением
  4. Обращение массива
  5. Вставка заданного элемента в заданную позицию массива
  6. Удаление элемента, заданного номером
  7. Определение размера самого длинного участка подряд следующих элементов с одинаковыми значениями
  8. Определение размера самого короткого участка подряд следующих элементов с одинаковыми значениями
  9. Замена всех элементов, имеющих заданное значение, элементами с другим заданным значением
  10. Определение количества участков подряд следующих элементов с одинаковыми значениями

 

– Конец работы –

Эта тема принадлежит разделу:

ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ

На сайте allrefs.net читайте: ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Российской Федерации...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ЛАБОРАТОРНАЯ РАБОТА N 8

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Санкт-Петербург
Составители: Т.М.Максимова   Рецензент: В.П.Попов     В методические указания включены краткие теоретические сведения, необходимые д

ОБЩИЕ ТРЕБОВАНИЯ К СОДЕРЖАНИЮ ОТЧЕТОВ
  В методические указания включены задания на 8 лабораторных работ, содержанием которых является разработка программы на языке С. Процесс разработки программы студент должен отразить

Текст программы
  void sort(int *a, char n) //функция сортировки n первых элементов (n<=100) массива a { bool f=true; //признак выполнения операции обмена char

ЛАБОРАТОРНАЯ РАБОТА N 1
Встроенные типы данных   1. Основные типы данных Язык С поддерживает несколько базовых типов данных, которые также называют простыми. Перечислим некоторые из них.

ЛАБОРАТОРНАЯ РАБОТА N 2
Программирование операций ввода-вывода   1.Некоторые библиотечные функции для работы с файлами   Функции файлового ввода-вывода используют указатель фа

ЛАБОРАТОРНАЯ РАБОТА № 3
Целочисленная арифметика   1. Введение в постановку задачи 1.1. Позиционные системы счисления При записи числа в позиционной системе счисления вклад каждой

ЛАБОРАТОРНАЯ РАБОТА № 4
Вещественная арифметика   1. Генератор псевдослучайных чисел   Для многих задач программирования, связанных с математическими моделями случайных явлени

ЛАБОРАТОРНАЯ РАБОТА № 5
Операции над многословными операндами   1. Многословные операнды   Арифметические выражения в языке C представляют собой формулы для вычисления значени

ЛАБОРАТОРНАЯ РАБОТА N 6
Работа со структурами   1 Понятие табличной структуры данных   Таблицей называется структура данных, элементы которой представляют собой записи, состоя

ЛАБОРАТОРНАЯ РАБОТА N 7
Операции над списковыми структурами   1.Принципы реализации динамических структур данных   Линейный список является примером динамической структуры дан

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
  1. Вирт Н. Алгоритмы и структуры данных. - М.: Мир,1989. - 360с. 2. Карпов Б., Баранова Т. С++: Специальный справочник. – СПб.: Питер, 2001. – 480с. 3. Кнут Д. Иск

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги