Is some one able to explain why header files have something like this?
class foo; // This here? class bar { bar(); };
Do you need an in
That's a forward declaration. You need it for example if class bar has a pointer to a foo object, but you don't want to include the whole definition of the foo object immediately.