fork download
  1. class Consumer {
  2. public:
  3. virtual void consume(int data) = 0;
  4. };
  5.  
  6. class A {
  7. public:
  8. A(Consumer& consumer) : consumer_(consumer) {}
  9. void process(int data) { consumer_.consume(data); }
  10. private:
  11. Consumer& consumer_;
  12. };
  13.  
  14. class B : public Consumer {
  15. public:
  16. B() {}
  17. void consume(int data) { /* consume data */ }
  18. };
  19.  
  20. int main() {
  21. B* b_ = new B();
  22. A a_ = A(*b_);
  23. a_.process(5);
  24. return 0;
  25. }
  26.  
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
Standard output is empty