Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: [D2006] Bug? class operator Inc & Implicit -> Fal

  Alt 13. Jun 2007, 17:48
Hallo,

Du hast einen Fehler in Deiner Deklaration:
Delphi-Quellcode:
class operator TMyRecord.Inc(AAmount: Integer): TMyRecord;
begin
  Writeln('Inc ', Result.Data, ' by ', AAmount);
  Result:=Result+AAmount;
end;
Was soll denn hier erhöht werden? Result ist undefiniert und eine Klassenmethode kann auf keine Objekt-Member zugreifen.

Richtig ist die Implementierung des Operators Inc so:
Delphi-Quellcode:
class operator TMyRecord.Inc(ARecord: TMyRecord; AAmount: Integer): TMyRecord;
begin
  Writeln('Inc ', ARecord.Data, ' by ', AAmount);
  Result:=ARecord+AAmount;
end;
Du musst ja angeben, welchen Record Du bearbeiten willst.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat