template <class T>
class Stack
{
public:
Stack(int = 10) ;
~Stack() { delete [] stackPtr ; } //<--- What does the "~" signify?
int push(const T&);
int pop(T&) ;
int isEmpty()const { return top == -1 ; }
int isFull() const { return top == size - 1 ; }
private:
int size ;
int top ;
T* stackPtr ;
} ;
136
Como outros observaram, no exemplo em que você está perguntando, é o destruidor
class Stack
.Mas, tomando sua pergunta exatamente como aparece no título:
existe outra situação. Em qualquer contexto, exceto imediatamente antes do nome de uma classe (que é o contexto destruidor),
~
é o operador de complemento (ou não bit a bit). Para ter certeza de que não aparece com muita frequência, mas você pode imaginar um caso comoque parece semelhante, mas tem um significado muito diferente.
fonte
É um destruidor. É garantido que a função seja chamada quando o objeto estiver fora do escopo.
fonte
Este é um destruidor. É chamado quando o objeto é destruído (fora do escopo da vida ou excluído).
Para ser claro, você deve usar ~ NameOfTheClass como para o construtor, outros nomes são inválidos.
fonte
É o destruidor. Este método é chamado quando a instância da sua classe é destruída:
fonte
Esse seria o destruidor (liberando qualquer memória dinâmica)
fonte