PDA

View Full Version : Problema inclusione classi [C++]


Juizer
20-09-2011, 18:09
Salve a tutti ho un problema.
Possiedo queste tre classi:

Lista.h
class Lista {
private:
Misurazione *first;

Misurazione* cancella(Misurazione *curr) {
if (curr) {
cancella(curr->get_next());
delete(curr);
}
}

public:

Lista() { first = NULL; }

~Lista() { cancella(first); }

void addOnHead(Misurazione* nuovo) {
nuovo->set_next(first);
first = nuovo;
}

Iterator* CreateIterator() { return new Iterator(this); }

Misurazione* get_first() {
return (first);
}
};


Iterator.h
class Iterator {

private:
Misurazione *current;
Lista *lista;

public:
Iterator(Lista *nuova) {
lista = nuova;
current = lista->get_first();
}

Misurazione* getCurrent() { return current; }

void move_next() { if (current) current = current->get_next(); }

~Iterator() {}
};

Misurazione.h
class Misurazione {
private:
Misurazione *next;
int id_number;
float altezza;

public:
Misurazione(int _id_number, float _altezza) { id_number = _id_number; altezza = _altezza; };

~Misurazione() {};

Misurazione* get_next() { return next; }

int get_id() { return id_number; }

float get_altezza() { return altezza; }

void set_next(Misurazione *nuovo) { next = nuovo; }

void set_id(int value) { id_number = value; }

void set_altezza(float value) { altezza = value; }
};

E non capisco come cavolo includerle nel main :'(

Ho azzardato cosė
#include "Misurazione.h"
class Lista;
#include "Iterator.h"
#include "Lista.h"

Ma niente, non funziona, chiedo umilmente aiuto :D

Grazie in anticipo.

GByTe87
20-09-2011, 21:51
In Iterator.h includi Lista.h e Misurazione.h
In Lista.h, prima di "Class Lista {..." inserisci "Class Iterator;" (forward declaration).
Nel Main.c includi solo Iterator.h.

Dovrebbe funzionare. :p

E metti le include guard. ;)