I'm making a component based entity system for a game engine.
I have an entity class, which has to include the component base class header in order to define the array of components
private Component* components[ 123 ]
private Entity* ownerEntity
As long as you only need your class to contain pointers or references to the other classes, you can skip the real include file and use an empty forward declaration like
You will need the full include in the source file where you dereference the pointers or use the reference to call methods on