Quote Originally Posted by pgavigan View Post
Shouldn't the "#include" take care of any requirements for forward declarations?
When you have two classes that refer to each other, that won't work. Consider this:

#include "class2.h"

//end class1.h

#include "class1.h"

//end class2.h
This results in files #including each other, which would never end. One of them has to be forward declared, and then you move the #include to the .cpp file.