Ho creato un programma in C++, che dovrebbe simulare un videonoleggio, la cosa strana č che dopo aver implementato una lista linkata, che sarebbe la mia struttura per il distributore, se invoco i metodi creando una LinkedList tutto funziona perfettamente, se invece creo una classe Distributore che altro non č che una linkedList che utilizza quei metodi, nell' invocare certe funzioni il programma va in loop oppure l' esecuzione fallisce, e non riesco a spiegarmi il perchč!!

Riporto l' header di LinkedList e e di Distributore con il cpp di Distributore:

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


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

#endif	/* LINKEDLIST_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();
          
};



#endif	/* DISTRIBUTORE_HPP */

codice:
#include "Distributore.hpp"

Distributore::Distributore(){
    distributore=new LinkedList();
    size=0;
}

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

int Distributore::getSize(){distributore->getSize();}
void Distributore::InserisciFilm(Film* f, unsigned c){distributore->addNode(f,c);}
void Distributore::EliminaFilm(Film* film){distributore->removeNode(film);}
Film* Distributore::EsceFilm(Film* f){distributore->exitFilm(f);}
void Distributore::RitornaFilm(Film* f){distributore->returnFilm(f);}
string Distributore::CopieFilm(Film* f){distributore->copieFilm(f);}
vector<Film*> Distributore::ListaFilmPerAnno(unsigned a){distributore->ListaFilmPerAnno(a);}
vector<Film*> Distributore::ListaRemake(){distributore->ListaRemake();}
string Distributore::search(string word, int mode){distributore->search(word, mode);}
string Distributore::listaCompleta(){distributore->listaCompleta();}

Ma l' esecuzione del main fallisce cosģ:

codice:
include <cstdlib>

#include "LinkedList.hpp"
#include <stdio.h>
#include <iostream>
#include "Node.hpp"
#include "Distributore.hpp"






using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

    
    Film* prova=new Film("I pirati della silicon valley", "mbarooz");
    prova->setAnnoUscita(1989);
    Distributore *distr=new Distributore();
    distr->InserisciFilm(prova, 5);
    cout << distr->CopieFilm(prova);
  

    

  
}
Ecco cosa fa copieFilm:

codice:
string LinkedList::copieFilm(Film* f){
        
        Node* tmp=isPresent(f);
        
         string toReturn;
         stringstream out;
        
        if(tmp!=NULL)
        {
            out << tmp->getElement()->getCopieTotali();
            toReturn+='h'+out.str()+", ";
            out.str("");
            out << tmp->getElement()->getCopiePresenti();
            toReturn+=out.str()+'i';
            
            return toReturn;
        }
         
        return toReturn="h0, 0i";
    }
Se al posto di Distributore uso un oggetto LinkedList funziona, com' č possibile?