I\'m trying to create proper header files which don\'t include too many other files to keep them clean and to speed up compile time.
I encountered two problems while
For your base classes, you need to have the full type definition, not just a declaration. Derived type headers will need to #include the header for their base classes.
For classes in the std namespace, you must include the proper header -
Fully qualify the type: std::string aStringToTest
Put a using declaration for just that type: using std::string;
Put in a using declaration for the std namespace: using namespace std;