StartprogrammingusingObjectPascal:ProcedureAndFunctionOverloading: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SPOP 프로시저와함수오버로딩 페이지 추가)
 
(스타일 수정)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
===프로시저와 함수 오버로딩===
==프로시저와 함수 오버로딩==


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


“이 함수는 오버로드 되었습니다”라는 의미를 지닌 예약어 ''overload''를 사용했음을 눈여겨 보도록 합니다.
 
"이 함수는 오버로드 되었습니다"라는 의미를 지닌 예약어 '''''overload'''''를 사용했음에 주의하도록 합니다.
 
 
[[Category:StartprogrammingusingObjectPascal]]
[[Category:StartprogrammingusingObjectPascal]]

Latest revision as of 11:14, 4 April 2013

프로시저와 함수 오버로딩

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

예를 들어 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를 사용했음에 주의하도록 합니다.