This article can be obsolete: Actual documentation online

Procedures and functions


Procedures are translated to void-functions:

procedure foo; -> void foo();


The translation of functions is more complicated, because there aren't return-statements in Object-Pascal. Instead, the return value is assigned to a variable "Result", which is implicitely declared in each function. In C++ this variable must be declared explicitly and returned at the end of the function. Also to the Exit-function has to be replaced by a return-statement in C++.


function foo(i : Integer) : bar;
begin                        
  Result := 0;              
  if i < 0  then             
    EXIT              
  else         
    Result := 1;                      
end;
->

bar __fastcall foo ( int i ) 
{                            
  bar result;                
  result = 0;                
  if ( i < 0 )               
    return result;           
  else                       
    result = 1;              
  return result;             
}                            

In addition, the function name itself acts as a special variable that holds the function’s return value, as does the predefined variable Result. So the same translation as above results from:

function foo(i : Integer) : bar;
begin 
  foo := 0;
  if i < 0  then
    EXIT
  else
    foo := 1;
end;

   deutsch Deutsch

 
Latest News
01/30/12
Delphi2Cpp 1.6.3 Better construction of objects [more...]

01/05/12
Delphi2Cpp 1.6.2 Resource strings and more [more...]



[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
TextTransformer is made with Borland CBuilder

  borland