It is possible to make circular references from class A to class B and vica-versa using forward declarations
class class_a;
class class_b;
class class_a {
class_a(class_b& arg) : ref_to_b(arg){}; // constructor
class_b& ref_to_b;
};
class class_b {
class_b(class_a& arg) : ref_to_a(arg){}; // constructor
class_a& ref_to_a;
};
How to create instances of such classes?