Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Suboptimale Klassenoperatoren?

  Alt 1. Mär 2015, 18:50
Da die es nicht wussten, sollte es "normal" implementiert sein, also als VAR.

Wenn der Typ das nicht unterstützt, dann kann man es "intern" immernoch anders umsetzen.
Delphi-Quellcode:
class operator TMyRecord.Inc(var Value: TMyRecord);
var
  Temp: TMyRecord;
begin
  Temp := Value;
  ...
  Value := ...;
end;
Genau genommen fehlt sogar noch die Inc-Version mit zwei Parametern.
Inc(i, 123);

Reden wir hier von Record-Operatoren?
Ja und Nein.

Aus technischen Gründen ist es "anfangs" nur für Records implementiert wurden.
Warum man vergessen hat das für Interfaces zu bauen, weiß ich nicht. (das ginge schon immer)
Dankt ARC wäre es, inzwischen seit XE4, auch möglich das bei Objekten (Klassen) zu benutzen.

Und grade bei Objekten wird der das immer mehr, wenn nun auch noch Objektinstanzen erstellt und freigegeben werden müssen, statt nur einem billigem Record.
Ein Vorteil bei den Objekten ist, daß man dort tricksen kann und bei diesen Operatoren einfach die selbe Objektreferenz zurückgibt. (wenn man blind hofft, daß Emba diese Funktionen nicht doch mal für zwei Objekte benutzt)
$2B or not $2B

Geändert von himitsu ( 1. Mär 2015 um 19:10 Uhr)
  Mit Zitat antworten Zitat