Destrutor (programação)

Destrutor (do inglês, desctructor) é um método invocado quando a classe deve ser destruída. É utilizado normalmente para liberar a memória alocada dinamicamente pela classe e para eliminar as possíveis referências à classe, quando ela não mais existir.

Um destrutor também pode ser chamado quando um objeto sai fora do seu escopo e/ou para fazer a finalização de dispositivos ou subsistemas que tenham sido ativados como classe. Se o programador não proporcionar construtores e um destrutor para uma classe, o compilador assume as ações mais simples. Em outras palavras, caso não seja definido um construtor e um destrutor para a classe, o compilador cria um construtor e um destrutor default, sem código e sem parâmetros, que são chamados, respectivamente, a cada declaração de instância, e cada vez que a instância sai fora do escopo.[1]

Características gerais editar

  • Não recebe parâmetros de entrada ou de saída.
  • É permitido apenas um destrutor por classe.
  • Não pode ser definido em Structs, apenas em Classes.
  • Não pode ser herdado ou sobrecarregado.
  • Não possui modificadores de acesso.
  • É invocado automaticamente, não podendo ser chamado.
  • Uma instância pode ser destruída apenas quando nenhum outro recurso utiliza essa instância.
  • O controle de quando o Destrutor será chamado é determinado pelo Garbage Collector.
  • Em linguagens de programação com o recurso coletor de lixo, que retiram da memória os objetos não referenciados, não há método destrutor, uma vez que o Garbage Collector faz o trabalho de destruição dos objetos.[2]

Referências editar

  1. Harb Manssour, Isabel (27 de julho de 2000). «Construtores e Destrutores» (PDF) 
  2. Mitre Campista, Miguel Elias. «Linguagens de Programação» (PDF) 
  Este artigo é um esboço. Você pode ajudar a Wikipédia expandindo-o. Editor: considere marcar com um esboço mais específico.