Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2007, 15:10   #1
alex9090
Новичок
Джуниор
 
Регистрация: 16.11.2007
Сообщений: 2
По умолчанию перезагружаемые процедуры и функции в delphi

пишу контрольную,
дали вопрос "перезагружаемые процедуры и функции в delphi "
не могу найти материалы по теме
помогите плиз,
киньте ссылочку
alex9090 вне форума Ответить с цитированием
Старый 16.11.2007, 15:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Правила форума читали? Видно, что нет.
Тема так и должна называться - не "Нужна помощь", а "Перезагружаемые процедуры и функции в delphi".
Теперь ответ. Эту же фразу введите в строку поиска Гугля, там - нужная вам ссылка. Кавычки не используйте.
mihali4 вне форума Ответить с цитированием
Старый 16.11.2007, 16:35   #3
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

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

При вызове перегруженной процедуры или функции и выбирается та версия, у которой типы формальных параметров совпадают с типами фактических или наиболее близки к ним. Например, если имеются описания
Код:
procedure p(b: byte);
begin
end;
procedure p(r: real);
begin
end;
то при вызове p(1.0) будет выбрана перегруженная версия с параметром типа real (точное соответствие), а при вызове p(1) будет выбрана перегруженная версия с параметром типа byte (при этом произойдет преобразование фактического параметра типа integer к типу byte).

Запрещено перегружать процедуру функцией и функцию процедурой. Запрещено также перегружать подпрограмму другой подпрограммой с тем же количеством и типами параметров (var и не var-параметры одного типа считаются равными). Возвращаемое значение функции не участвует в разрешении перегрузки, т.е перегружаемые функции не могут различаться только типами возвращаемых значений.
Перегрузка не действует, если подпрограммы с одинаковыми именами находятся в разных пространствах имен. Например, если в базовом классе имеются методы с теми же именами, что и в производном, то алгоритм поиска перегруженной версии для производного класса таков: вначале ищется перегруженная версия в производном классе, и если она не найдена, то поиск производится в его базовом классе и т.д.
Код:
type
  A=class
    procedure p(i: integer);
    procedure q(r: real);
  end;
  B=class(A)
    procedure p(r: real);
    procedure q(i: integer);
  end;
...
var m: B;
...
m.p(1);   
m.q(2.1);
I like WPF
kommunist вне форума Ответить с цитированием
Старый 16.11.2007, 16:50   #4
alex9090
Новичок
Джуниор
 
Регистрация: 16.11.2007
Сообщений: 2
По умолчанию

kommunist,
большое спасибо за такой четкий, развернутый ответ
alex9090 вне форума Ответить с цитированием
Старый 16.11.2007, 16:51   #5
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

да незачто обращайся
I like WPF
kommunist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль...Процедуры и функции Miledi Помощь студентам 3 14.05.2012 18:22
Процедуры и функции. В чем отличие? Умелец Паскаль, Turbo Pascal, PascalABC.NET 12 20.10.2010 19:59
Процедуры и функции V25 Паскаль, Turbo Pascal, PascalABC.NET 1 17.11.2008 20:02
Процедуры и функции 11111 Помощь студентам 10 26.11.2007 15:06
DLL + Процедуры(не функции) LEKA Общие вопросы Delphi 1 02.05.2007 20:37