Errore "circular dependency dropped"

di il
4 risposte

Errore "circular dependency dropped"

Ciao a tutti,
ho un errore in compilazione che non riesco ad interpretare. Ho creato una struttura pila in c++ ma mi dà quest'errore:

"Circular pilavet <- pilavet.o dependency dropped.
creating pilavet.a
No such file."

Ecco il codice:

#ifndef pilavet_h
#define pilavet_h
#include <iostream>
#include <stdlib>

#include "pila.h"
#include "nodopila.h"

using namespace std;
const int maxlung=100;

template <class tipoelem>
class pilavet: public pila<tipoelem> { //qui si indica l'ereditarietà dalla classe pila
      
      public:
             pilavet();
             pilavet(int);
             void creapila();
             bool pilavuota();
             tipoelem leggipila();
             void fuoripila();
             void inpila(tipoelem);
      private:
              nodopila pila[maxlung];
              int testa;    
              int dimpila;  
      }
#endif
      
template <class tipoelem> //COSTRUTTORE CON DIM FISSA
pilavet::pilavet() {
                   dimpila=maxlung;
                   creapila();
                   }
                   
template <class tipoelem> //COSTRUTTORE CON DIM IN INPUT
pilavet::pilavet(int dimensione) {
                     dimpila=dimensione;
                     creapila();
                     }
                  
template <class tipoelem> //CREAPILA
pilavet::creapila() {
                    testa=0;
                    }
                    
template <class tipoelem> //PILAVUOTA
bool pilavet::pilavuota() {
     return (testa==0);
     }
     
template <class tipoelem> //LEGGIPILA
tipoelem pilavet::leggipila() {
         if (testa != 0)
           return (pila[testa-1].leggielem() );
         }
         
template <class tipoelem> //FUORIPILA
void pilavet::fuoripila() {
                     if (!pilavuota())
                        testa= testa-1;
                     else
                       cout<<"La pila e' vuota\n";
                     }         
                     
template <class tipoelem> //INPILA
void pilavet::inpila (tipoelem elem) {
     if (testa==maxlung)
       cout<<"Non ci sono spazi liberi\n";
     else {
            pila.scrivielem(elem);
            testa++;          
          }
     
     }
Queste invece sono le librerie che ho creato e che sono incluse:
nodopila

#ifndef nodopila_h
#define nodopila_h
#include <iostream>

using namespace std

template <class T>

class nodopila {
      public:
             nodopila();
             T leggielem();
             void scrivielem(T);
      private:
              T elemento;
      
      };
      
template <class T> //COSTRUTTORE
nodopila<T>::nodopila() {
                        elemento=0;
                        }
                        
template <class T>  // LEGGIELEM
T nodopila<T>::leggielem() {
                         return elemento;
                         }
                         
template <class T> //SCRIVIELEM
void nodopila<T>::scrivielem(T elem) {
                          elemento=elem;
                          }
      #endif
pila

#ifndef pila_h
#define pila_h
#include <iostream>

using namespace std;

template <class tipoelem>
class pila {
      public:
             virtual void creapila()=0;
             virtual bool pilavuota()=0;
             virtual tipoelem leggipila()=0;
             virtual void fuoripila()=0;
             virtual void inpila(tipoelem)=0;     
      };
      
#endif

Chi è così gentile da illuminarmi?

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte