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:
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?codice:#ifndef SOMECLASS_H #define SOMECLASS_H //Inclusioni classe SOMECLASS{ } #endif
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
Mi di errore : 'Inventory' does not name a typecodice:private: Inventory inventory;
e sinceramente .... non capisco perchè
Quancuno può spiegarmi da che dipende ? e come si risolve ?
Grazie

) e credo di essere incappato in qualche oscuro problema di inclusioni degli header.
Rispondi quotando