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
- 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
Este artigo é um esboço. Você pode ajudar a Wikipédia expandindo-o. | Editor: considere marcar com um esboço mais específico. |