Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Обобщенные подпрограммы: обзорСодержание книги
Поиск на нашем сайте Обобщенные типы: обзор Обобщенным типом (generic) называется шаблон для создания класса, записи или интерфейса, параметризованный одним или несколькими типами. Класс (запись, интерфейс) образуется из шаблона класса (записи, интерфейса) подстановкой конкретных типов в качестве параметров. Параметры указываются после имени обобщенного типа в угловых скобках. Например, Stack<T> - шаблон класса списка элементов типа T, параметризованный типом T, а Stack<integer> - класс списка с элементами типа integer. Для объявления шаблона класса используется следующий синтаксис: type Использование шаблона класса иллюстрируется ниже: var Обобщенной подпрограммой (generic) называется шаблон для создания подпрограммы, параметризованный одним или несколькими типами. Подпрограмма образуется из шаблона подпрограммы подстановкой конкретных типов в качестве параметров. Параметры указываются после имени подпрограммы в угловых скобках. Например, следующая generic-функция параметризована одним параметром: function FindFirstInArray<T>(a: array of T; val: T): integer; var x: array of string; begin При вызове обобщенной подпрограммы тип-параметр шаблона можно не указывать, поскольку компилятор выводит типы параметров шаблона по типам фактических параметров. В данном случае после выведения получено: T=string. При выведении требуется точное соответствие типов, приведение типов не допускается. Например, при компиляции следующего кода ... begin произойдет ошибка. Причина состоит в том, что первый параметр имеет тип array of real, а второй - тип integer, что не соответствует ни одному типу T в заголовке обобщенной функции. Для решения проблемы следует либо изменить тип второго параметра на real: FindFirstInArray(x,1.0) либо явно после имени функции в угловых скобках указать имя типа, которым параметризован данный вызов: FindFirstInArray&<real>(x,1) Использование знака & здесь обязательно, поскольку в противном случае компилятор трактует знак < как "меньше". Шаблонными могут быть не только обычные подпрограммы, но и методы классов, а также методы другого шаблона класса. Например: type function Pair<T,Q>.ChangeSecond<S>(newval: S): Pair<T,S>; var По окончании работы данная программа выведет 3abc.
|
||
|
Последнее изменение этой страницы: 2024-06-27; просмотров: 38; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.) |