fork download
  1. class source_of_B
  2. {
  3. class B &source;
  4. source_of_B(B &source): source(source) {}
  5. friend class A;
  6. friend class B;
  7. };
  8. class B
  9. {
  10. int x;
  11. B(int x): x(x) {}
  12. friend class A;
  13. public:
  14. B(const source_of_B &arg): x(arg.source.x) {}
  15. };
  16. class A
  17. {
  18. B b;
  19. public:
  20. A(): b(5) {}
  21. source_of_B create_object() { return b; }
  22. B create_object2() { return b; }
  23. };
  24.  
  25. int main()
  26. {
  27. A a;
  28. B b = a.create_object();
  29. auto b2 = a.create_object2();
  30. }
Success #stdin #stdout 0s 3292KB
stdin
Standard input is empty
stdout
Standard output is empty