187 votes

En c++, que signifie un tilde "~" avant un nom de fonction ?

 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 ;  
 } ;

10voto

Samuel Danielson Points 1043

C'est un destructeur. La fonction est garantie pour être appelée lorsque l'objet sort de portée.

6voto

Klaim Points 24511

C'est un destructeur. Il est appelé lorsque l'objet est détruit (hors de portée ou supprimé).

Pour être clair, vous devez utiliser ~ NameOfTheClass comme pour le constructeur, les autres noms ne sont pas valides.

4voto

Pierre Points 15256

C'est le destructeur. Cette méthode est appelée lorsque l'instance de votre classe est détruite :

Stack<int> *stack= new Stack<int>;
//do something
delete stack; //<- destructor is called here;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X