Перегрузка процедур и функций в Паскаль

Перегрузка процедур и функций в Паскаль осуществляется следующим образом:

  1. Если перегружают функцию, то:
    1. Создают несколько функций (хотя бы две) с одинаковыми именами, у которых обязательно отличаются типы и/или порядок входящих аргументов разного типа.
    2. Типы возвращаемых значений могут отличаться, а могут и нет.
  2. Если перегружает процедуру, то:
    1. Создают несколько процедур (хотя бы две) с одинаковыми именами, у которых обязательно отличаются типы и/или порядок входящих аргументов разного типа.

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

Пример перегрузки функции и процедуру (использование общего имени для разных вариантов сигнатур):

var
  a, b, c: integer; // глобальные переменные

function sum(x, y: integer): integer;
begin // начало тела функции
  result := x + y; { результат для возврата наружу
  (в глобальное пространство программы из локального пространства функции) }
  writeln('function!');
end;  // конец описания функции (её тела)

procedure sum(x, y: integer);
var result: integer;
begin
  result := x + y;
  write('procedure!');
  // x := 5;
end;

procedure sum(x, y, z: integer);
var result: integer;
begin
  result := x + y;
  write('procedure!');
  // x := 5;
end;

function sum(x: integer): integer;
begin
  result := x;
  writeln('function 2!');
end;

begin // начало тела основной программы
  //readln(a, b);
  a:=5; b:=7;
  sum(a, b);
  c := sum(a, b);
  writeln(sum(a, b), sum(a), c);
  b := sum(a, b, c);

  sum(a);

  readln();
end. // конец основной программы

Key Words for FKN + antitotal forum (CS VSU):