fork(3) download
  1. #include <iostream>
  2.  
  3. // source1.h
  4. class A {
  5. public:
  6. class B;
  7.  
  8. public:
  9. explicit A(B &);
  10.  
  11. void use_b();
  12.  
  13. private:
  14. B & b;
  15. };
  16.  
  17. // source2.h
  18. class A::B {
  19. public:
  20. B();
  21. void do_something();
  22. };
  23.  
  24. // source3.cpp
  25.  
  26. A::A(B & pB) : b(pB) { }
  27.  
  28. void A::use_b()
  29. {
  30. b.do_something();
  31. }
  32.  
  33. // source4.cpp
  34.  
  35. A::B::B() { }
  36.  
  37. void A::B::do_something()
  38. {
  39. std::cout << "Did something." << std::endl;
  40. }
  41.  
  42. // main
  43.  
  44. int main()
  45. {
  46. A::B b;
  47. A a(b);
  48.  
  49. a.use_b();
  50. }
  51.  
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Did something.