Think a second about computer memory.
class B;
class A {
byte aa;
B ab;
};
class B {
byte bb;
A ba;
};
A x;
Now the question the compiler should answer is: how much space should I reserve for x?
. x - byte aa;. . 1 .
B ab;. , .
x.ab - byte bb;. 2 x.
A ba;. , .
x.ab.ba - byte aa;. 3 x.
, .
x? , , *** OUT OF CHEESE ERROR ***.
, , - .
x :

UPDATE
, . , , , . . A B, B A, , , . - B A, , .