First of all why do you need a circular reference? Any real need or you want just to test?
First of all the headers will have circular reference. You can use a include guard to over come that. Mostly all advanced C/C++ processors can avoid it, but always when you include headers use include guards. In Microsoft VCC then I think you can use
After you overcome this you have a second problem.
Suppose you create an object of type
When the constructor of
is called it calls the constructors of
. Inside this again constructor of
will be called. This is a recursive problem. You will go out of stack and there will be crash.
You can use pointers or reference instead of real objects.