fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. struct Listener {
  6. virtual void callback() = 0;
  7. };
  8.  
  9. struct Listener1 : public Listener{
  10. void callback() override {
  11. cout << "listener1" << endl;
  12. }
  13. };
  14.  
  15. struct Processor {
  16. vector<Listener*> listeners;
  17.  
  18. void notify() {
  19. for(auto &listener : listeners) {
  20. listener->callback();
  21. }
  22. }
  23. };
  24.  
  25. int main() {
  26. Listener1 listener1;
  27.  
  28. Processor processor;
  29.  
  30. processor.listeners.push_back(&listener1);
  31.  
  32. processor.notify();
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0s 3228KB
stdin
Standard input is empty
stdout
listener1