Salve a tutti, ho quasi finito un progetto, purtroppo non ho ben capito come, e quando č necessario usare i distruttori, riporto i file header del mio progetto e il main, poichč suppongo sia qui che debba usarli:

Node.hpp
codice:
#ifndef NODE_HPP
#define	NODE_HPP

#include <string>
#include <stdio.h>
#include "Film.hpp"

using namespace std;


class Node
{
        protected:
            Film* element;
            Node* next;
            Node* prev;
            
        public:
            Node();
            Node(Film* element);
            ~Node();
    
    
           Film* getElement();
           void setElement(Film* element);
           void setNext(Node* succ);
           Node* getNext();
           void setPrev(Node* p);
           Node* getPrev();
};
LinkedList.hpp

codice:
#ifndef LINKEDLIST_HPP
#define	LINKEDLIST_HPP
#include "Node.hpp"
#include <string>
#include <stdio.h>
#include <vector>
#include "Tokenizer.hpp"
#include <algorithm>
#include <sstream>
#include <string.h>


using namespace std;

class LinkedList
{
    
        protected:
            Node* header;
            Node* trailer;
            int size;
     
            
        public:
            LinkedList();
           ~LinkedList();
           
           int getSize();
           Node* isPresent(Film* f);
           void addNode(Film* element,unsigned n);
           void removeNode(Film* toRemove);
           Film* exitFilm(Film* f);
           void returnFilm(Film* f);
           string copieFilm(Film* f);
           vector<Film*> ListaFilmPerAnno(unsigned a);
           vector<Film*> ListaRemake();
           string search(string word, int mode);
           string listaCompleta();
           Film* objectFilm(string titolo);
           
          
           
};

#endif	/* LINKEDLIST_HPP */
Distributore.hpp
codice:
#ifndef DISTRIBUTORE_HPP
#define	DISTRIBUTORE_HPP

#include "LinkedList.hpp"

using namespace std;

class Distributore
{
    
        protected:
            LinkedList* distributore;
            int size;
     
            
        public:
            Distributore();
           ~Distributore();
           
           int getSize();
           void InserisciFilm(Film* f, unsigned c); 
           void EliminaFilm(Film* film);
           Film* EsceFilm(Film* f);
           void RitornaFilm(Film* f);
           string CopieFilm(Film* f);
           vector<Film*> ListaFilmPerAnno(unsigned a);
           vector<Film*> ListaRemake();
           string search(string word, int mode);
           string listaCompleta();
           Film* objectFilm(string titolo);
          
};



#endif	/* DISTRIBUTORE_HPP */
Ora nel main se inserisco un' istruzione alla fine, richiamando il distruttore di Distributore, il programma va in loop, mi spiegate quando e come si invocano, usano i distruttori?

Per richiamarlo nel main uso:
codice:
 distr->~Distributore();
implementato cosģ:

codice:
Distributore::~Distributore(){
    delete distributore;
}