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):
Code:
// within A.H
#ifndef _A_H_43756436598765439347
#define _A_H_43756436598765439347
// 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
Also, both source files should include both headers.