AVInfo Sistemas Posted July 31, 2012 Report Share Posted July 31, 2012 Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ? EX: oObj := TOBJ():NEW() //Crio o Primeiro objeto oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável ** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ? Xharbour 1.2.1 - Fw 10.10 - WS e Pelles tominem@hotmail.com Editado por - sdinfo on 01/08/2012 17:13:41 Quote Link to comment Share on other sites More sharing options...
AVInfo Sistemas Posted July 31, 2012 Author Report Share Posted July 31, 2012 Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ? EX: oObj := TOBJ():NEW() //Crio o Primeiro objeto oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável ** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ? Xharbour 1.2.1 - Fw 10.10 - WS e Pelles tominem@hotmail.com Editado por - sdinfo on 01/08/2012 17:13:41 Quote Link to comment Share on other sites More sharing options...
fladimir Posted July 31, 2012 Report Share Posted July 31, 2012 Colega até onde sei para apagar o conteúdo da memória de uma variável atribua o valor NIL a ela... oOBJ := NIL []´s Quote Link to comment Share on other sites More sharing options...
atnsoft Posted July 31, 2012 Report Share Posted July 31, 2012 "Acho" que o procedimento é o mesmo para vars: Atribua como local e finalize ao término: Local oObj, oTeste oObj:End() oTeste:End() AtnSoft(Antenor Rabello) - xHarbour 0.99.71 / FwH 7.05 / Verce C. Procópio - PR Quote Link to comment Share on other sites More sharing options...
emotta Posted August 1, 2012 Report Share Posted August 1, 2012 O primeiro objeto nao existe mais, pois não existe variavel que referencia a ele e para ter certeza que ele saiu da memória basta executar a funcao: HB_GCALL(.T.) Porem o (x)Harbour tem esse controle internamente e de tempos em tempos ele limpa da memória isso. Sobre o que foi colocado acima sobre o metodo END em objetos ele só vai funcionar se a classe tem o método END ou recebe de herança o método. END para finalizar objeto não é regra. Somente para complementar, eu faço como foi indicado na primeira resposta. Apenas igualo a variavel a NIL e quando o programa retorna para o MENU PRINCIPAL do meu sistema executo a função HB_GCALL(.T.) mas apenas para garantir. abraços, citação:Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ? EX: oObj := TOBJ():NEW() //Crio o Primeiro objeto oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável ** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ? Xharbour 1.2.1 - Fw 10.10 - WS e Pelles tominem@hotmail.com id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Editado por - emotta on 01/08/2012 14:00:14 Quote Link to comment Share on other sites More sharing options...
AVInfo Sistemas Posted August 1, 2012 Author Report Share Posted August 1, 2012 citação:O primeiro objeto nao existe mais, pois não existe variavel que referencia a ele e para ter certeza que ele saiu da memória basta executar a funcao: HB_GCALL(.T.) Porem o (x)Harbour tem esse controle internamente e de tempos em tempos ele limpa da memória isso. Sobre o que foi colocado acima sobre o metodo END em objetos ele só vai funcionar se a classe tem o método END ou recebe de herança o método. END para finalizar objeto não é regra. Somente para complementar, eu faço como foi indicado na primeira resposta. Apenas igualo a variavel a NIL e quando o programa retorna para o MENU PRINCIPAL do meu sistema executo a função HB_GCALL(.T.) mas apenas para garantir. abraços, citação:Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ? EX: oObj := TOBJ():NEW() //Crio o Primeiro objeto oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável ** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ? Xharbour 1.2.1 - Fw 10.10 - WS e Pelles tominem@hotmail.com id=quote>id=quote>Eduardo Motta emotta@gmail.com.br FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD Editado por - emotta on 01/08/2012 14:00:14 id=quote>id=quote>Excelente explicação amigo. Obrigado a tdos pelas respostas. Pessoal aki do forum é show de bola. Xharbour 1.2.1 - Fw 10.10 - WS e Pelles tominem@hotmail.com Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.