Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda O Que É um Destrutor da Classe | Fundamentos de POO em C++
C++ Poo

O Que É um Destrutor da Classe

Deslize para mostrar o menu

Note
Definição

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

Embora tenham propósitos opostos, criar um destrutor é muito semelhante a criar um construtor. Eles compartilham quase 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

scope.cpp

delete.cpp

delete.cpp

termination.cpp

termination.cpp

123456
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.

A 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

ResourceHolder.cpp

FileHandler.cpp

FileHandler.cpp

123456789101112
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?

question mark

Qual é o principal objetivo de um destrutor?

Selecione a resposta correta

question mark

Qual é a sintaxe para declarar um destrutor?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 15

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 15
some-alt