Ho un problema con header e template, devo realizzare un distributore di videonoleggio, e ho pensato di utilizzare una lista linkata, dove ogni nodo contiene un oggetto di tipo Film. Ho errori che non capisco a cosa siano dovuti, intanto posto solamente gli header di LinkedList e Node.
Node.hpp
codice:ifndef NODE_HPP #define NODE_HPP //#include <stdio.h> #include "Film.hpp" //error In file included from #include <string> template <class Film> class Node { //error changes meaning of 'Node' from class Node<Film> protected: string film; string copieDisp; string copieTot; Node* next; public: Node(Film element); ~Node(); void setFilm(Film film); void setNext(Node * next); void setcopieDisp(string number); void setcopieTot(string number); Node* getNext(); Film getFilm(); string getcopieDisp(); string getcopieTot(); }; #endif /* NODE_HPP */
E LinkedList.hpp
Riporto anche l' header di Film che non ha errori:codice:#ifndef LINKEDLIST_HPP #define LINKEDLIST_HPP #include"Node.hpp" //errore o meglio triangolo giallo //template <class Film> class LinkedList { protected: typedef Node <Film>* Node; // declaration of 'typedef class Node<Film> LinkedList:: Node Node<Film>* head; Node<Film>* tail; int size; public: LinkedList(); ~LinkedList(); void setHead(Node<Film>* n); Node<Film>* getHead(); void setTail(Node<Film>* n); Node<Film>* getTail(); int getSize(); void addNode(Node<Film>* newNode, int copie); void deleteNode(Node<Film>* toRemove); int isPresent(Node<Film>* element); Film getNode(Film f); void giveNode(Film f); string copieNode(Film f); vector<Film> listAnno(unsigned int a); vector<Film> listRemake(); Film searchFilm(string titolo, string attori, string regista); }; #endif /* LINKEDLIST_HPP */
codice:#ifndef FILM_HPP #define FILM_HPP //#include <stdio.h> //#include <string.h> using namespace std; class Film { protected: string titolo; string regista; int annouscita; bool isRemake; string originale; string attori; string remake; public: Film(string titolo, string regista, bool isRemake); Film(string titolo); ~Film(); void setAttori(string name); void setOriginale(string originale); void setTitolo(string valore); void setRegista(string valore); void setAnnouscita(int valore); void setRemake(bool valore); string getAttori(); string getTitolo(); string getRegista(); int getAnnouscita(); bool isRemake(); string getOriginale(); string getRemake(); void FissaOriginale(Node<Film> film, Node<Film> remake); }; #endif /* FILM_HPP */

Rispondi quotando
fammi sapere che compilatore usi
