fork download
  1. #include <iostream>
  2. #include <functional>
  3.  
  4. class Bar
  5. {
  6. public:
  7. Bar() {}
  8.  
  9. Bar(std::function<void(void)> funct_) : funct(funct_) {}
  10.  
  11. void setFunct(std::function<void(void)> funct_)
  12. {
  13. funct = funct_;
  14. }
  15.  
  16. void run()
  17. {
  18. for (int k = 0; k < 10; ++k)
  19. {
  20. funct();
  21. }
  22. };
  23.  
  24. std::function<void(void)> funct;
  25. };
  26.  
  27. class Foo
  28. {
  29. public:
  30. Foo()
  31. {
  32. bar.setFunct(std::bind(&Foo::printSimpleFoo, this));
  33. }
  34.  
  35. void printSimpleFoo()
  36. {
  37. std::cout << "Hello World\n";
  38. }
  39.  
  40. void start()
  41. {
  42. bar.run();
  43. }
  44.  
  45. private:
  46. Bar bar;
  47. };
  48.  
  49. int main()
  50. {
  51. Foo foo;
  52. foo.start();
  53.  
  54. return 0;
  55. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World