StartprogrammingusingObjectPascal:ProcedureAndFunctionOverloading

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

프로시저와 함수 오버로딩

오버로딩은 하나 이상의 프로시저나 함수를 이름은 같지만 인자를 다르게 하여 작성할 수 있음을 의미합니다. 다른 인자라는 것은 인자 형식의 다름이나 인자 수의 다름을 의미합니다.

예를 들어 Sum 함수의 두 가지 버전을 작성하려고 합니다. 하나는 받아들이는 인자들과 되돌리는 값이 정수형이고, 다른 하나는 받아들이는 인자들과 되돌리는 값이 실수형입니다.

program sum;

{$mode objfpc}{$H+}

uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    Classes
    { you can add units after this };

function Sum(x, y: Integer): Integer; overload;
begin
    Result:= x + y;
end;

function Sum(x, y: Double): Double; overload;
begin
    Result:= x + y;
end;

var
    j, i: Integer;
    h, g: Double;
begin
    j:= 15;
    i:= 20;
    Writeln(j, ' + ', i, ' = ', Sum(j, i));
    h:= 2.5;
    g:= 7.12;
    Writeln(h, ' + ', g, ' = ', Sum(h, g));
    Write('Press enter key to close');
    Readln;
end.


"이 함수는 오버로드 되었습니다"라는 의미를 지닌 예약어 overload를 사용했음에 주의하도록 합니다.