fork download
  1. #include "iostream"
  2.  
  3. class Logger {
  4. public:
  5. Logger(std::string name) : name_(name) {}
  6. void log(std::string msg) { std::cout << name_ << ": " << msg << std::endl; }
  7. private:
  8. std::string name_;
  9. };
  10.  
  11. class B {
  12. public:
  13. B() : logger_("Class B" ) {}
  14. void doSomethingInB() {
  15. logger_.log("B doing something");
  16. }
  17. private:
  18. Logger logger_;
  19. };
  20.  
  21. class C : public B {
  22. public:
  23. C() : logger_("Class C" ) {}
  24. void doSomethingInC() {
  25. logger_.log("C doing something");
  26. }
  27. private:
  28. Logger logger_;
  29. };
  30.  
  31. int main()
  32. {
  33. B* b = new B();
  34. C* c = new C();
  35.  
  36. b->doSomethingInB();
  37.  
  38. c->doSomethingInC();
  39. c->doSomethingInB();
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
Class B: B doing something
Class C: C doing something
Class B: B doing something