Ciao a tutti,
Volevo "rispolverare" un po' c++ (non che abbia fatto cose grandi al di fuori dell ambito universitario
) e credo di essere incappato in qualche oscuro problema di inclusioni degli header.
Ho questa struttura (volevo simulare una parte di un rpg ):
Inventory.h => (include) itemmanager.h
itemmanager.h => item.h, consumable,h, entity.h
item.h => effect.h
consumable.h => item.h
effect.h => entity.h
main.cpp => entity.h, itemmanager.h
tutti i file .h hanno la seguente struttuta:
codice:
#ifndef SOMECLASS_H
#define SOMECLASS_H
//Inclusioni
classe SOMECLASS{
}
#endif
Ora, volevo aggiungere inventory.h ad entity.h, ma appena compilo gcc mi da errore su effect.h ('Entity' has not been declared). Credo quindi che sia un problema di dipendenza circolare, no?
Così da effect.h ho tolto l'include di entity.h e messo class Entity;
in questo modo compila...ma se aggiungo su Entity (entity.h) un campo
codice:
private:
Inventory inventory;
Mi di errore : 'Inventory' does not name a type
e sinceramente .... non capisco perchè 
Quancuno può spiegarmi da che dipende ? e come si risolve ?
Grazie