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 ;
} ;
137
Comme d'autres l'ont noté, dans le cas où vous posez la question, c'est le destructeur pour
class Stack
.Mais en prenant votre question exactement telle qu'elle apparaît dans le titre:
il y a une autre situation. Dans n'importe quel contexte, sauf juste avant le nom d'une classe (qui est le contexte du destructeur), se
~
trouve l'opérateur complémentaire à un (ou non au niveau du bit). Pour être sûr que cela n'arrive pas très souvent, mais vous pouvez imaginer un cas commequi ressemble, mais a une signification très différente.
la source
C'est un destructeur. L'appel de la fonction est garanti lorsque l'objet est hors de portée.
la source
C'est un destructeur. Il est appelé lorsque l'objet est détruit (hors de portée de la vie ou supprimé).
Pour être clair, vous devez utiliser ~ NameOfTheClass comme pour le constructeur, les autres noms ne sont pas valides.
la source
C'est le destructeur. Cette méthode est appelée lorsque l'instance de votre classe est détruite:
la source
Ce serait le destructeur (libérant toute mémoire dynamique)
la source