Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#90

Re: Delphi-PRAXiS goes Hollywood ;-)

  Alt 11. Dez 2005, 22:39
Zitat von malo:
Ich denke mal, ein Overload ist nicht nötig, weil es ja bei Operatoren grundsätzlich nur Überladungen gibt.
Der Begriff "Überladung" ist hier etwas zweideutig zu verstehen. Funktionen können überladen werden. Dabei nimmt eine Funktion, abhängig vom Kontext, mehrere Formen an. Der Kontext wird in dem Fall durch die Aufrufparameter bestimmt.

Bei der Operatorüberladung bestimmt sich der Kontext aus den Typen der Operanden, was man letztendes auch als das gleiche ansehen kann.


Was mir noch nicht ganz klar ist: Eine Überladung beispielsweise des Additions-Operator sieht ja so aus:

class operator add(A: Typ1; B: Typ2): Typ1; Was ist der Bezug zwischen dem Operator und der Klasse/dem Record, in dem er deklariert wird? Schließlich steht der Kontext (also die Typen der Operanden) ja in der Signatur allein, die Typzugehörigkeit scheint ja keine Rolle zu spielen.

Könnte ich dementsprechend also meinen Operator zum Addieren von zwei Vektoren innerhalb der Deklaration einer Klasse für komplexe Zahlen angeben, wenn ich als Parameter zwei Objekte vom Typ Vektor angebe?

Oder wie ist das ganze zu verstehen?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat