postane una decina almeno si capisce qualcosa di più
come farei io la struttura
file parser.h
codice:
#ifndef __PARSER_H__
#define __PARSER_H__
risoluzione dipendenze
// Definizione classe
class parser {
// Prototipi delle funzioni
...
public:
...
};
#endif // __PARSER_H__
risoluzione dipendenze
a) tramite #include "tree.h"
oppure
b) tramite forward declaration (fortemente consigliata)
class tree;
file parser.cpp
codice:
// Struttura dell'albero
#include "parser.h"
definizione metodi della classe parser
le direttive #ifndef servono ad evitare le ridefinizioni multiple
infatti è possibile fare più dichiarazioni, ma non più di 1 definizione altrimenti il compilatore
. 
perchè non saprebbe quale definizione scegliere.
es:
class tree;
class tree;
sono 2 dichiarazioni, quindi no problema
int i;
int i;
sono 2 definizioni, quindi guai
potrebbe andare bene questa a patto che utilizzi la classe tree tramite puntatori o tramite reference
codice:
#ifndef __PARSER_H__
#define __PARSER_H__
class tree;
// Definizione classe
class parser {
tree* my_tree;
// Prototipi delle funzioni
...
public:
};
#endif // __PARSER_H__
altrimenti
codice:
#ifndef __PARSER_H__
#define __PARSER_H__
#include "tree.h"
// Definizione classe
class parser {
tree my_tree;
// Prototipi delle funzioni
...
public:
};
#endif // __PARSER_H__
comunque ti consiglio ti partire prima da qui
http://www.nbirn.net/Resources/Devel...C_Includes.htm
http://dit.unitn.it/~dandrea/progogg...i/07_Class.pdf
http://netalab8.di.univaq.it/so/stuff/linguaggio_c.pdf
guarda anche nel thinking in c++ di bruce eckel liberamente scaricabile dal suo sito.