Статья: Трансляция кода Delphi в код C++Builder
...
function LoanC.IntSinceLastAddDate_d(var dAvailCash: double): double;
var dSomething: double;
begin
...
result := dSomething; {глобальнаяпеременная "result" назанчаетсявозвращаемымзначением!}
end;
procedure LoanC.SetNewIntRate;
begin
...
end;
И C ++ и OP могут передавать параметры по значению или по ссылке или передавать константы...
C++ позначению ... double IntSinceLastAddDate_d(double dAvailCash);
OP позначению ... function IntSinceLastAddDate_d(dAvailCash: double): double;
C++ поссылке ... double IntSinceLastAddDate_d(double &dAvailCash);
OP поссылке ... function IntSinceLastAddDate_d(var dAvailCash: double): double;
C++ константы... double IntSinceLastAddDate_d(const double dAvailCash);
OP константы... function IntSinceLastAddDate_d(const dAvailCash: double): double;
Конструкция with ... do
Вообще, C ++ более компактен чем OP. Но, C ++ не имеет инструкцию with ... do с... Это неудачно, потому что это действительно - большая особенность OP. C ++ код будет более подробным по сравнению с OP.
В C ++, когда Вы должны обратиться к членам данных, вы заканчиваете оператор подобно этому...
poC.oStock.aoTradesLast130Days[0].lVol = 0;
poC.oStock.aoTradesLast130Days[0].dHigh = 0;
poC.oStock.aoTradesLast130Days[0].dLow = 0;
poC.oStock.aoTradesLast130Days[0].dClose = 0;
Но в OP, Вы можете делать это гораздо менее читаемым, делая так...
with poC.oStock.aoTradesLast130Days[0] do begin
lVol := 0;
dHigh := 0;