1) Don't include a.h within b.h or b.h within a.h. You don't need that. (See below)
2) You should make sure no header can be included more than once during any compile. MSVC++ allows you to use the #pragma once directive, or you can do it the old fashioned way (see below):
Also, both source files should include both headers.
// within A.H
// we use the filename and a random string of numbers to guarantee a unique symbol
class B; // we tell it that there exists some class B somewhere.
// rest of A.h
#endif // don't forget this