Considere o seguinte procedimento func escrito na linguagem Delphi:
procedure func(var X: TMyObj; Y: TMyForm); begin
X := TMyObj.Create(Y);
end;
A análise desse procedimento permite afirmar que
o func libera a variável X da memória.
o objeto X é o retorno do procedimento func.
o parâmetro X está sendo passado por referência.
o parâmetro X está sendo passado por valor e Y por referência.
X e Y são parâmetros passados por valor, mas apenas X é inicializada.