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
| Latest News |
|
10/28/24
Delphi2Cpp 2.5: Symbol names matching declaration case [more...] |
|
08/26/24
Delphi2Cpp 2.4: Updated to RAD Studio 12.1 Athens [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
is made with TextTransformer
|
TextTransformer is made with Borland
CBuilder
|