AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Überladen, Overload

Ein Thema von Baumel · begonnen am 12. Aug 2003 · letzter Beitrag vom 14. Aug 2003
Antwort Antwort
Baumel

Registriert seit: 10. Aug 2003
Ort: Wassenberg
15 Beiträge
 
Delphi 6 Enterprise
 
#1

Überladen, Overload

  Alt 12. Aug 2003, 21:52
Hallo,
ab welcher Delphi-Version kann man Methoden, Funktionen, ... überladen?
Ich war bis ebend der meinung, daß man das schon seit BP7 konnte.
Aber das scheibnt doch nicht so zu sein, da ich momentan mit Delphi 3 Prof herumprogrammiere und dort kann man nix überladen. Zum Stichwort overload findet man in der Hilfe nichts entsprechendes

Mach ich was falsch? Ab welcher Delphi-Version kann man überladen?

Gruß
Dirk
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Überladen, Overload

  Alt 12. Aug 2003, 22:25
ab D5 funktionierts.
  Mit Zitat antworten Zitat
Baumel

Registriert seit: 10. Aug 2003
Ort: Wassenberg
15 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Überladen, Overload

  Alt 12. Aug 2003, 22:33
Danke für die schnelle Antwort.

Dann muss ich mir demnächst ne neuere Delphi-Version beschaffen.

Schönen Abend noch
Dirk
  Mit Zitat antworten Zitat
imp

Registriert seit: 5. Mai 2003
25 Beiträge
 
#4

Re: Überladen, Overload

  Alt 12. Aug 2003, 22:35
Ab welcher Version kann ich dir nicht sagen. Ich denke mal es geht schon seit es die Objektorientierung gibt, denn ansonsten würde sie ja nicht halb soviel sinn machen. Allerdings hat man - wenn ich mich recht entsinne - früher nicht override verwendet sondern einfach nur virtual.
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#5

Re: Überladen, Overload

  Alt 12. Aug 2003, 22:41
Überladen geht erst ab Delphi 4....

Hoppla, kaum ist man mal 'ne Viertelstunde weg, schon sind einem ein paar Leute zuvor gekommen...

Übrigens overload hat nix mit override zu tun. Mal nen Blick in die Hilfe riskieren..

Ciao, teebee
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: Überladen, Overload

  Alt 13. Aug 2003, 03:21
Ok, überladen geht ab Delphi 4 und funktioniert so richtig ab Delphi 5. In D4 gab es immer wieder Deklarationen die zwar gültige Sprachkonstrukte sind aber nicht vom Compiler aufgelösst werden konnten. Ebenfalls ein enormes Problem mit D4 overloads sind die Default Parameter. Unter bestimmten Umständen generierte der Compiler "selbstzerstörischen" Code.

Gruß hagen
  Mit Zitat antworten Zitat
[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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz