Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   operator Direktive in Delphi? (https://www.delphipraxis.net/187144-operator-direktive-delphi.html)

DualCoreCpu 31. Okt 2015 09:54

operator Direktive in Delphi?
 
Hallo,


in Freepascal ist so ein Konstruct möglich:

Delphi-Quellcode:
unit irgendwas;

interface

operator = (const ASize1, ASize2: TfpgSize) b: Boolean;

implementation

operator = (const ASize1, ASize2: TfpgSize) b: Boolean;
begin
  b := (ASize1.w = ASize2.w) and (ASize1.h = ASize2.h);
end;

end;
Ich hatte angenommen, das dies ab Turbo Delphi 2006 auch mit Delphi mölich wäre, aber der Compiler meldet mir:

[Pascal Error] fpg_main.pas(428): E2070 Unknown directive: 'operator'

Muss ich da einen Compilerschalter setzen, wenn ja welchen, oder gibt ed das generell erst in späteren Delphi Versionen.

Wenn letzteres, gibt es einen günstigen Work Around für das Problem?

Durch Funktionsaufrufe ersetzen scheint mir nur dann tragbar, wenn die Operatoren im weiteren Code nicht allzu oft verwendet werden.

bepe 31. Okt 2015 10:07

AW: operator Direktive in Delphi?
 
Delphi Treff hat da eine Einführung.

In Delphi sind die Operatoren Klassenmethoden des entsprechenden Typs. Also z.B.:

Delphi-Quellcode:
TfpgSize = record
...
  class Operator Equal(ASize1, ASize2: TfpgSize): Boolean;
...
end;

dummzeuch 31. Okt 2015 11:00

AW: operator Direktive in Delphi?
 
Naeheres findest du hier:

http://docwiki.embarcadero.com/RADSt...oading_(Delphi)

oder auf Deutsch:

http://docwiki.embarcadero.com/RADSt...atoren_(Delphi)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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