fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Base
  5. {
  6. public:
  7. Base() {}
  8. };
  9.  
  10. // Forward declaration
  11. class Derived1;
  12.  
  13. class Derived2 : public Base
  14. {
  15. friend class Derived1;
  16.  
  17. public:
  18. Derived2() : Base() {}
  19. private:
  20. Derived1 *ptr;
  21.  
  22. };
  23.  
  24. class Derived1 : public Base
  25. {
  26. public:
  27. Derived1(Derived2& obj) : Base(), ptr(&obj) {
  28. obj.ptr = this;
  29. }
  30. private:
  31. Derived2 *ptr;
  32. };
  33.  
  34. int main() {
  35.  
  36. Derived2 obj2;
  37. Derived1 obj1(obj2);
  38.  
  39.  
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty