Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Überladen von Operatoren


Tana´Ri - Do 13.11.03 10:01
Titel: Überladen von Operatoren
Hi,

hab in der Schule was interessantes kennen gelernt (siehe Title)
die frage ist nun wie das und ob es in Delphi möglich ist ?


Currywurst - Do 13.11.03 10:30

erste treffer googel nach "Überladen von Operatoren" delphi http://ourworld.compuserve.com/homepages/praxisservice/kapit2c.htm#Kap2368


barfuesser - Do 13.11.03 10:55

@Currywurst: Hast Du mal gelesen, was dort steht?
@Tana´Ri: Nein

barfuesser


Currywurst - Do 13.11.03 11:17

sicher hab ich das gelesen, was meinst du denn?

da es eben ein vergleich zwischen c und pascal is könnte es auch sonst interessant für ihn sein, die wichtige zeile ist halt Da Object Pascal diese Technik nicht beherrscht, müssen neu zu definierende Funktionen die Aufgabe der überladenen Operatoren übernehmen:

aber hast du bis dahin gelesen? :-)


barfuesser - Do 13.11.03 12:12

Entschuldige, den Satz hatte ich überlesen. :oops:

barfuesser


AndyB - Fr 14.11.03 01:39

Currywurst hat folgendes geschrieben:
Da Object Pascal diese Technik nicht beherrscht, müssen neu zu definierende Funktionen die Aufgabe der überladenen Operatoren übernehmen:

Dieser Satz ist nicht ganz richtig. Es gibt ab Delphi 6 die Möglichkeit über einen eigenen Variant Typ.

Borland's eigenes Beispiel ist die Unit VarCmplx.pas. Hierbei ruft der Compiler die Methoden der Variant-Klasse auf.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
uses VarCmplx;

var z1, z2, z3: Variant;
begin
  z1 := VarComplexCreate(1010{i});
  z2 := VarComplexCreate(1, -5{i});
  z3 := z1 + z2; // addieren über + -> .BinaryOp()
  ShowMessage(z3);
end;