Deklarationen von Operatoren in Delphi haben alle Signaturen mit Parametern und Rückgabetypen. Demgegenüber habe in C++ einige Operatoren keine Rückgabewerte. Stattdessen wird die Operation an der Klasseninstanz selbst ausgeführt.

  • Binäre Operatoren werden in C++ genauso formuliert wie in Delphi. Deswegen gibt es ein direkte Übersetzung der Delphi-Operatoren.
  • Der Code für die unären Operatoren Negative, Positive, LogicalNot, Inc und Dec muss bei der Übersetzung nach C++ umgeformt werden.
  • Auch die Konversionsoperatoren müssen umgeformt werden. In Abhängigkeit von der Konversionsrichtung - in die Klasses oder aus der Klasse - erfolgt die Übersetzung unterschiedlich.
  • Schließlich gibt es noch mehr Operatoren in Delphi wie Trunc oder In, die in C++ keine Operatoren sind.

Hier ein einfaches Beispiel für die Übersetzung eines binären Delphi Operators nach C++:


class operator TMyClass.Add(a, b: TMyClass): TMyClass;
var
  returnrec : TMyrClass;
begin
  returnrec.payload := a.payload + b.payload;
  Result:= returnrec;
end;

becomes in C++ to:


TMyClass operator + (const TMyClass& A, const TMyClass& B)
{
  TMyClass result = {0};
  TMyClass returnrec = {0};
  returnrec.payload = A.payload + B.payload;
  result = returnrec;
  return result;
}


   english english

 
Letzte Neuigkeiten
15.11.19
DelphiXE2Cpp11 Klassenreferenzen [mehr...]

16.10.19
Delphi2C# beta Angebot [mehr...]