fork(1) download
  1. #include <iostream>
  2.  
  3. struct TimerService
  4. {
  5. virtual void handleTimerEvent() = 0;
  6.  
  7. TimerService()
  8. {
  9. }
  10.  
  11. void trigger()
  12. {
  13. handleTimerEvent();
  14. }
  15. };
  16.  
  17. class A : public TimerService
  18. {
  19.  
  20. const char* m_name;
  21.  
  22. public:
  23. A(const char* name_) : TimerService(), m_name(name_) {}
  24.  
  25. void handleTimerEvent() override
  26. {
  27. std::cout << "Handling timer event in " << m_name << '\n';
  28. }
  29. };
  30.  
  31. void triggerEvent(TimerService& service)
  32. {
  33. service.trigger();
  34. }
  35.  
  36. int main()
  37. {
  38. A a("A instance 'a'"), b("A instance 'b'");
  39. triggerEvent(b);
  40. triggerEvent(a);
  41. }
Success #stdin #stdout 0s 3140KB
stdin
Standard input is empty
stdout
Handling timer event in A instance 'b'
Handling timer event in A instance 'a'