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 | editar código-fonte]- 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 | editar código-fonte]- ↑ Harb Manssour, Isabel (27 de julho de 2000). «Construtores e Destrutores» (PDF)
- ↑ Mitre Campista, Miguel Elias. «Linguagens de Programação» (PDF)