StartprogrammingusingObjectPascal:ProcedureAndFunctionOverloading: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (SPOP 프로시저와함수오버로딩 페이지 추가) |
Onionmixer (talk | contribs) (스타일 수정) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
==프로시저와 함수 오버로딩== | |||
오버로딩은 하나 이상의 프로시저나 함수를 이름은 같지만 인자를 다르게 하여 작성할 수 있음을 의미합니다. 다른 인자라는 것은 인자 형식의 다름이나 인자 수의 다름을 의미합니다. | 오버로딩은 하나 이상의 프로시저나 함수를 이름은 같지만 인자를 다르게 하여 작성할 수 있음을 의미합니다. 다른 인자라는 것은 인자 형식의 다름이나 인자 수의 다름을 의미합니다. | ||
Line 42: | Line 42: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
"이 함수는 오버로드 되었습니다"라는 의미를 지닌 예약어 '''''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를 사용했음에 주의하도록 합니다.