//File A.hpp
class B;

class A {
 double x;
public:
 B inline convertToB(void);
};
 
#include <A_detail.hpp>

//File B.hpp
class A;

class B {
 double y;
public:
 A inline convertToA(void);
};
 
#include <B_detail.hpp>

//File A_detail.hpp
#include <B.hpp>
B A::convertToB(void) {
 return B(x);
}
//File B_detail.hpp
#include <A.hpp>
A B::convertToA(void) {
 return A(y);
}

The compiler is giving the error that it can't access the private members.  Once the forward declaration is used the compiler can't seem to use the full class later.
 
Ryan