Overload
Adam Boduch
overload - słowo kluczowe języka Delphi
Klauzulą overload możemy opatrzyć procedury i funkcje, a także metody. Dzięki temu kompilator nie będzie protestował, gdy zadeklarujemy kilka funkcji lub procedur o tej samej nazwie! Warunkiem jest jednak to, że przeładowywane metody (o tych samych nazwach) muszą różnić się listą parametrów (chodzi o to by kompilator mógł rozróżnić po typach parametrów z którymi wywoływana jest metoda, którą z przeładowanych procedur (lub funkcji) ma użyć). Nie jest więc dopuszczalna poniższa sytuacja:
function Mnozenie(X,Y : Integer) : Integer; overload;
function Mnozenie(Z,W : Integer) : Integer; overload;
Przykład prawidłowego użycia:
function Mnozenie(X, Y : Integer) : Integer; overload;
begin
Result := X * Y;
end;
function Mnozenie(X, Y : Currency) : Currency; overload;
begin
Result := X * Y;
end;
W programie umieściliśmy dwie funkcje o tej samej nazwie. Teraz, w zależności od kontekstu (czyli wartości parametrów), kompilator sam zadecyduje jaką funkcję wywołać:
Mnozenie(2, 2);
Mnozenie(2.2., 2.2); // tak też będzie dobrze
Metody również mogą zostać poddane procesowi przeciążania. Spójrz na poniższy przykład, w którym przeciążone zostały konstruktory (które nota bene również są specyficzną odmianą metod).
type
TMyClass = class
public
constructor Create; overload;
constructor Create(Value : String); overload;
end;
Zobacz też:
Tak. Widze trudno było sprawdzić, nie?
A więc: Przy deklaracji owej procedury czy funkcji piszemy OVERLOAD. Ale przy nagłówku reszty też piszemy? ... Resztą mam na myśli ten fragment kodu, który jest "zawartością" owej procedury czy funkcji. ;)
A więc: Przy deklaracji owej procedury czy funkcji piszemy OVERLOAD. Ale przy nagłówku reszty też piszemy? ... Resztą mam na myśli ten fragment kodu, który jest "zawartością" owej procedury czy funkcji. ;)