fork download
  1. #include <iostream>
  2.  
  3. class Foo {
  4. public:
  5. Foo(int a) : m_a(a) {};
  6. virtual ~Foo() {};
  7.  
  8. void PrintValue() {
  9. std::cout << Value() << std::endl;
  10. }
  11. protected:
  12. virtual int Value() {
  13. return m_a;
  14. }
  15. private:
  16. int m_a;
  17. };
  18.  
  19. class Bar : public Foo
  20. {
  21. public:
  22. Bar(int a, int b) : Foo(a), m_b(b) {};
  23. virtual ~Bar() {};
  24.  
  25. int Value() override {
  26. return m_b;
  27. }
  28. private:
  29. int m_b;
  30. };
  31.  
  32. int main(int argc, char** argv)
  33. {
  34. Bar b(10, 20);
  35. b.PrintValue();
  36. std::cout << b.Value() << std::endl;
  37. return 0;
  38. }
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
20
20