All Delphi operator declarations have the signature of functions with parameters and a return type. In C++ however, some operators don't return a value, but operate on the class instance itself.

  • The binary operators in C++ are formed like their counterparts in C++ and therefore the translation is straightforward.
  • The code for the unary operators Negative, Positive, LogicalNot, Inc and Dec has to be remodeled at the C++ translation.
  • The conversion operators have to be remodeled too. Dependant on the direction of the conversion - to the class or from the class - the translation has to be done differently.
  • Finally there are more operators in Delphi like Trunc or In which aren't operators in C++.

Here is a simple example for the translation of a binary operator:

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

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;

   deutsch Deutsch


Latest News
Aurora2Cpp: Delphi 7 translator [more...]

Delphi2Cpp 2.3: Conversion of DFM files [more...]

"Thanks for your great work, really appreciate the work you have done on zlib and compiling ... test case."

Mattewada, Udayabhaskar
Nokia India 02/01/2021

[from case study...]

"A masterpiece -- Delphi2Cpp has exceeded all my expectations by far."

Tony Hürlimann
virtual-optima 08/20/2011

"First off, I have to say WOW! Delphi2Cpp is doing a *fantastic* job!"

Daniel Flower
linkrealms 01/15/2011

This website is generated from plain text with [Minimal Website ]

Minimal Website
Minimal Website is made with TextTransformer

TextTransformer is made with Borland CBuilder