Thema: Delphi Überladen, Overload

Einzelnen Beitrag anzeigen

[Flox]Cauchy

Registriert seit: 25. Dez 2002
Ort: Wiesbaden
13 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Überladen, Overload

  Alt 14. Aug 2003, 15:27
Seit welcher Version das Überladen von Prozeduren/Funktionen unter Delphi unterstützt wird, weiß ich nicht, aber wenn in der Hilfe dazu nichts zu finden ist, dann gibt es das in der entsprechenden Version noch nicht. Turbo Pascal 7.0 kannte auf jeden Fall noch kein "overload".

Ich wollte nur mal anmerken, daß das Überladen von Prozeduren/Funktionen zunächst nichts mit Objekten/Klassen zu tun hat, wie das folgende Beispiel zeigt:
Delphi-Quellcode:
function Maximum(a, b: Integer): Integer; overload;
  begin
    if a > b then
      Result := a
    else
      Result := b;
  end;

function Maximum(a, b: Single): Single; overload;
  begin
    if a > b then
      Result := a
    else
      Result := b;
  end;
Man vergleiche auch die interne Definition von "IntToStr". Überladen von Prozeduren/Funktionen bedeutet, daß es zu einem Bezeichner mehrere Implementationen gibt, die sich in der Parameterliste unterscheiden. Die beiden Aufrufe
Delphi-Quellcode:
Maximum(3, 8);
Maximum(3.2, 8.5);
aktivieren jeweils die passende Implementation, die aber schon durch den Compiler festgelegt wird.

Die Tatsache, daß man bei Objekten/Klassen dynamische Methoden mit "dynamic", "virtual" und "override" erstellen kann, bedeutet ja, daß diese Methoden dynamisch gebunden werden. Das heißt, daß erst während des Programmablaufs entschieden wird, welche der Implementationen aktiviert wird. Das Ganze nennt man dann (dynamisches) Überschreiben von Methoden.

Natürlich kann man eine virtuelle Methode in einer Klassendefinition als "overload" deklarieren, so daß in abgeleiteten Klassen eine überschriebene Methode sowie weitere überladene Methoden angelegt werden können. Ich hoffe, das hat ein weng geholfen ...
  Mit Zitat antworten Zitat