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?