Classes TLPP - Destrutores

Boa noite.

Em desenvolvimento de classes, normalmente temos um método construtor e um método de destruição.

No Tl++, qual queria o método de destruição?

Sabem me informar se, ao disparar as chamadas FwFreeVar ou FreeObj este método é acionado de alguma forma, ou se as rotinas simplesmente transformam a variável em NIL?

Obrigado!

Lucas,

Advpl ou Tlpp não possuem métodos construtores ou métodos destrutores.

Por convenção, por assim dizer, o método construtor é o método new, e o destrutor é o método destroy, porém isso não é uma regra.

As funções FWFreeVar e FreeObj apenas limpam o objeto da memória, nenhum método destrutor é chamado, portanto se você tem um método destrutor, o correto seria chamar esse método antes de utilizar o FreeObj.


Importante!

O método construtor da classe, na verdade é o primeiro método invocado.

De maneira direta, ao limpar uma variável onde uma classe foi criada esta instância?

Method Destroy() Class TTeste

fwFreeVar( @Self:cLastError   ) // libero a propriedade da classe
fwFreeVar( @Self:cMinorError  ) // libero a propriedade da classe
fwFreeVar( @Self:cDetailError ) // libero a propriedade da classe

fwFreeVar( @Self ) // libero a instancia da própria classe

Return

Lucas, não é bom fazer um FreeObj de self, pois você basicamente comete suicídio, que criou a instância da sua classe deve ser o responsável por eliminar ela. Você pode criar um método destroy que a mata as suas dependências, mas não se mate! =)