Conteúdo do Curso
C++ Poo
C++ Poo
O Que É um Destrutor da Classe
Destrutores são funções membro especiais que são invocadas quando o tempo de vida de um object's
chega ao fim. Sua principal finalidade é liberar recursos que o objeto possa ter adquirido durante seu tempo de vida.
Sintaxe do Destrutor
Apesar de terem propósitos opostos, criar um destrutor é muito semelhante a criar um construtor. Eles compartilham praticamente os mesmos princípios de declaração. A abordagem geral para criar um é:
Nome: possui o mesmo nome da classe, mas é precedido por um til (
~
);Sem tipo de retorno: não possui tipo de retorno, nem mesmo void;
Sem parâmetros: não pode receber parâmetros;
Invocação automática: é chamado automaticamente pelo compilador quando o objeto sai de escopo ou é explicitamente deletado.
Invocação Automática de Destrutores
A invocação automática de destrutores refere-se à chamada automática do destrutor. Isso garante que os recursos mantidos pelo objeto sejam devidamente liberados, ajudando assim a evitar vazamentos de memória e de recursos.
scope.cpp
delete.cpp
termination.cpp
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
quando um objeto sai de escopo;
quando o operador
delete
é utilizado para excluir objetos alocados dinamicamente;quando o programa é finalizado.
Necessidade dos Destrutores
O principal objetivo de um destrutor é liberar os recursos adquiridos pelo objeto durante seu tempo de vida. Isso inclui fechar arquivos abertos, desalocar memória (usando new
) ou tarefas semelhantes.
ResourceHolder.cpp
FileHandler.cpp
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Qual é o principal objetivo de um destrutor?
2. Qual é a sintaxe para declarar um destrutor?
Obrigado pelo seu feedback!